Cards inherit their collection's publication status
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user