【问题标题】:Rails Routes get :this[:id]Rails 路由获取 :this[:id]
【发布时间】:2013-11-07 21:03:20
【问题描述】:

我在路线文件中设置正确路线时遇到问题。 我有一个事件控制器。 在事件控制器中,我有一个名为“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”我收到“No route matches [GET]”/events/5/people”错误。

我确定我的路线文件中遗漏了一些简单的东西。 谁能提供我缺少的部分?

【问题讨论】:

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


    【解决方案1】:

    是的,它不在收藏中,它在会员中

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

    【讨论】:

      【解决方案2】:

      你可以试试这个方法:

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

      【讨论】:

        猜你喜欢
        • 2012-11-09
        • 1970-01-01
        • 1970-01-01
        • 2014-04-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多