Cards inherit their collection's publication status

This commit is contained in:
Jason Zimdars
2025-07-09 10:08:47 -05:00
parent 27285a3dcb
commit e77710c6b6
3 changed files with 31 additions and 0 deletions
@@ -0,0 +1,13 @@
module PublicCardScoped
extend ActiveSupport::Concern
included do
before_action :set_collection_and_card
end
private
def set_collection_and_card
@collection = Collection.find_by_published_key(params[:collection_id])
@card = @collection.cards.find(params[:id])
end
end
@@ -0,0 +1,12 @@
class Public::CardsController < ApplicationController
include PublicCardScoped
allow_unauthenticated_access only: :show
layout "public"
def show
# To enable caching at intermediate proxies during traffic spikes
expires_in 5.seconds, public: true
end
end
+6
View File
@@ -134,6 +134,8 @@ Rails.application.routes.draw do
scope module: :collections do
resources :card_previews
end
resources :cards, only: :show
end
end
@@ -141,6 +143,10 @@ Rails.application.routes.draw do
route_for :public_collection, collection.publication.key
end
direct :published_card do |card, options|
route_for :public_collection_card, card.collection.publication.key, card
end
resolve "Card" do |card, options|
route_for :collection_card, card.collection, card, options
end