2

次のルートがあります。

resources :boilerplates
resources :projects do
  resources :boilerplates
end

モデルは次のBoilerplateようになります。

class Boilerplate < ActiveRecord::Base
  scope :originals, -> { where(prototype_id: nil) }
end

私のコントローラーは次のようになります。

class BoilerplatesController < InheritedResources::Base
  load_and_authorize_resource
  belongs_to :project, optional: true
end

URLを開いたときに、スコープ/boilerplates付きのボイラープレートをすべて表示したい。originals

URL/projects/123/boilerplatesを開いたときにoriginalsスコープがアクティブにならないようにしたい。

これはどのように達成できますか?

4

1 に答える 1

1

私はこれを自分で行う方法を見つけました。でBoilerplatesController

protected

def collection
  if @project
    super
  else
    super.originals
  end
end
于 2015-08-09T13:21:06.480 に答える