是否可以获得如下路线:
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"
}
答案 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