无法找到包含' id' = Rails的群组

时间:2018-03-28 20:32:24

标签: ruby-on-rails

我在我的群组控制器中有这个方法,它正在寻找在参数中传递的组的id

def set_group
  @group = Group.find(params[:id])
end

我有这条路线,还有其他几条路线正在寻找group_id而不是id。由于没有找到group_id,它会抛出此错误。

/accounts/:account_id/groups/:group_id/settings
  

找不到具有' id' =

的群组

如何判断此变量以查找id和/ group_id的参数?我在下面列出了此特定实例的所有路线,一半需要id,另一半需要group_id

/accounts/:account_id/groups/:group_id/add_map(.:format)  
/accounts/:account_id/groups/:group_id/add_map(.:format)  
/accounts/:account_id/groups/:group_id/maps(.:format)   
/accounts/:account_id/groups/:group_id/add(.:format)   
/accounts/:account_id/groups/:group_id/add(.:format) 
/accounts/:account_id/groups/:group_id/remove/:id(.:format) 
/accounts/:account_id/groups/:group_id/maps/:map_id/remove(.:format) 
/accounts/:account_id/groups/:group_id/settings(.:format)          
/accounts/:account_id/groups(.:format)                               
/accounts/:account_id/groups(.:format)                               
/accounts/:account_id/groups/new(.:format)                           
/accounts/:account_id/groups/:id(.:format)                           
/accounts/:account_id/groups/:id(.:format)                           
/accounts/:account_id/groups/:id(.:format)                           
/accounts/:account_id/groups/:id(.:format)

我只需要一个带group_id的单独变量吗?

1 个答案:

答案 0 :(得分:1)

您可以在params中查找其中一个并使用您找到的第一个,例如:

def set_group
  id = params[:group_id] || params[:id]
  @group = Group.find(id)
end