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

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/perse”时,它可以正常工作,但是,如果我尝试做类似“ .../events/events/5/perse”之类的事情。我得到“无路由匹配[GET]”/Events/5/People”错误。

我相信我在路线文件中缺少一些简单的东西。谁能为我提供我缺少的部分?

有帮助吗?

解决方案

是的,它没有收集,它是会员

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

其他提示

您可以尝试这种方法:

id = 1
User.find_by_sql(['select * from users where id = ?', id])`
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top