【问题标题】:Rails 3 Custom Route that takes multiple ids as a parameterRails 3 以多个 id 作为参数的自定义路由
【发布时间】:2011-09-18 18:38:21
【问题描述】:

如何向我的 Rails 3 应用程序添加一个路由,它允许我有一个 URL 映射到一个接受多个参数的 RESTful 资源中的操作:

/modelname/compare/1234,2938,40395

然后在我的控制器中,我想访问这些 id:

@modelname = Modelname.find(params[:modelname_ids])

到目前为止,我一直在尝试匹配 '/modelname/compare/:modelname_ids', :to => 'modelname#compare',但我不断收到 No route matches "/modelname/compare/4df632fd35be357701000005,4df632fd35be357701000005"。有什么建议吗?

【问题讨论】:

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


    【解决方案1】:

    你可以设置一个匹配任何东西的路由,然后在你的控制器中拆分参数:

    resources :modelname do
      match 'compare/*path' => 'controller#compare_action'
    end
    
    # controller:
    def compare_action
      @modelname = Modelname.find(params[:path].split(','))
    end
    

    【讨论】:

    • 不应该是split(',')吗?
    猜你喜欢
    • 1970-01-01
    • 2015-06-12
    • 2011-06-11
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多