Rails Routes get:this [:id]

时间:2013-11-07 21:03:20

标签: ruby-on-rails routes custom-routes

我在路线文件中设置正确的路线时遇到问题。 我有一个事件控制器。 在事件控制器中,我有一个名为“people”的动作,看起来有点像这样:

def people
    @people = Event.find_by_sql(["sql that joins three tables to get the data I need;", params[:id]])
end

在我的路线中,我有:

resources :events do
    collection do
      get :somethingelse
      get :people
    end
end

如果我在我的“find_by_sql”之前硬编码我的params [:id],当我访问“... / events / people”时它工作得很好但是,如果我尝试做类似“... / events / 5”的事情/ people“我得到了”没有路线匹配[GET]“/ events / 5 / people”错误。

我确信我在路线文件中遗漏了一些简单的东西。 任何人都可以向我提供我失踪的部分吗?

2 个答案:

答案 0 :(得分:3)

是的,它不在收集,它在成员

collection do
  get :somethingelse
end
member do
  get :people
end

答案 1 :(得分:0)

你可以尝试这种方法:

id = 1
User.find_by_sql(['select * from users where id = ?', id])`