Унаследованные ресурсы и необязательный own_to: как ограничить коллекцию родительским ресурсом, но не вложенным ресурсом?

У меня есть следующие маршруты:

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 не была активной.

Как этого добиться?


person Joshua Muheim    schedule 09.08.2015    source источник


Ответы (1)


Я просто нашел способ сделать это сам. В 1_:

protected

def collection
  if @project
    super
  else
    super.originals
  end
end
person Joshua Muheim    schedule 09.08.2015