Rails:在url中查询params

时间:2014-04-16 09:56:13

标签: ruby-on-rails

是否可以获得如下路线:

http://example.org/test/url/p/some-123/random-444/keys-245 

此网址应解析为params:

{
  controller:"home",
  action:"get",
  mod:"test",
  submob:"url",
  some:"123",
  random:"444",
  keys:"245"
}

3 个答案:

答案 0 :(得分:1)

当然 - 您必须在routes中定义所有内容:

#config/routes.rb
resources :controller do
    get ":mod(/:submod/:some/:keys)", to "controller#action"
end

答案 1 :(得分:1)

我们可以使用此

  match '/:mod/:submod/:some/:keys' => "controller#action", :as => test_profile

我们就像

一样使用它
 link_to "Own path", test_profile_path(mod: "test", submod: "url", some: "123", keys: "245")

答案 2 :(得分:1)

get ':mod/:submod/p/*extra_params', to: 'home#index'

然后在HomeController

def params
  orig_params = super
  extra_params = orig_params.delete(:extra_params)
  extra_params = Hash[extra_params.split('/').map { |p| p.split('-') }]
  orig_params.merge(extra_params)
end
相关问题