我有一个模型示例,其中has_many:users但也属于一个Group。我想要一个只是示例的索引和组示例的另一个索引。 like- url.com/examples(仅显示没有group_id的示例)和url.com/group/1/examples。目前我的路线文件如下所示:
Rails.application.routes.draw do
resources :groups do
resources :examples
end
resources :examples
但我确定您知道这会产生问题,因为索引操作相同导致所有示例都显示在url.com/examples和url.com/groups/1/examples上。
我搜索并搜索并搜索了这个答案但由于某种原因我无法找到解决方案。
答案 0 :(得分:3)
如果您是从嵌套路线到此处,可以在before_filter
中签入examples_controller
并相应地设置控制器的行为。例如:
class ExamplesController < ApplicationController
before_filter :set_group, if: -> { params[:group_id].present? }
def index
@examples = if @group
@group.examples
else
Example.where(group_id: nil)
end
end
# ...
private
def set_group
@group = Group.find(params[:group_id])
end
end