我有以下路线:
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
当网址/boilerplates
打开时,我想显示所有具有originals
范围的样板。
打开网址/projects/123/boilerplates
后,我希望originals
范围不被激活。
如何实现这一目标?
答案 0 :(得分:1)
我刚刚找到了自己做的方法。在BoilerplatesController
:
protected
def collection
if @project
super
else
super.originals
end
end