我有时需要通过URL将其他参数传递给页面。过去我在路由文件中使用了两个通用占位符,我称其为“genus”和“species”。这用于工作,但现在它已经开始用查询字符串生成URL。为什么我的Rails 2路由有查询字符串?
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>
索引页面显示/主/测试属= 42 & id = 1我可以预期/main/test/42/1。
然而,如果我去/主/测试/1分之42然后我看到正确的参数:
{ “控制器”=> “主”, “动作”=>“测试“,”genus“=>”42“,”id“=>”1“}
任何想法我做错了什么?
辉煌,它的作品!我认为你对2.3.8版本的改变是正确的,因为我确信我使用了很久以前的东西。具体要求将解决它,直到我移动到Rails 3.非常感谢。 – Graham 2010-09-03 09:43:29