【发布时间】:2011-04-06 21:36:21
【问题描述】:
有时我需要通过 URL 向页面传递额外的参数。过去,我在路由文件中使用了几个通用占位符,我称之为“属”和“种”。这曾经可以工作,但现在它已经开始生成带有查询字符串的 URL。
Rails 版本是 2.3.8。
路由文件是:
ActionController::Routing::Routes.draw do |map|
map.root :controller => 'main', :action => 'index'
map.connect ':controller', :action => 'index'
map.connect ':controller/:action'
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:genus/:id'
map.connect ':controller/:action/:genus/:species/:id'
end
索引页面是:
<p>
<%= url_for :controller => 'main', :action => 'test', :genus => 42, :id => 1 %>
</p>
测试页面是
<p>
<%= params.inspect -%>
</p>
索引页显示 /main/test?genus=42&id=1,这是我预期的 /main/test/42/1。
但是,如果我转到 /main/test/42/1,我会看到正确的参数:
{"controller"=>"main", "action"=>"test", "genus"=>"42", "id"=>"1"}
任何想法我做错了什么?
【问题讨论】:
标签: ruby-on-rails configuration routing query-string