继承的资源和可选的belongs_to:如何在父资源中收集范围,但不在嵌套资源中?

时间:2015-08-09 13:16:20

标签: inherited-resources

我有以下路线:

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范围不被激活。

如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

我刚刚找到了自己做的方法。在BoilerplatesController

protected

def collection
  if @project
    super
  else
    super.originals
  end
end