使用多个参数的rake路由

时间:2011-10-10 23:10:11

标签: ruby-on-rails-3

以下是其中一个网址的佣金路线输出

bug_info  /bugs/:pr/:scope/info(.:format)       {:controller=>"bugs", :action=>"info"}

如果我调用bug_info_path(:pr => 1,:scope => 2),在erb视图中,视图会给我一个错误说

  

没有路由匹配{:scope =>“2”,:action =>“info”,:controller =>“bugs”,   :PR => “中1”}

我在这里做错了什么

match 'bugs/:pr/:scope/info' => 'bugs#info', :as=>:bug_info

1 个答案:

答案 0 :(得分:1)

非常奇怪。我测试了生成一个新的rails应用程序并填充了你的东西,它似乎工作正常。这就是我得到的。 (这是使用Rails 3.0.7)。

配置/ route.rb

Railstest::Application.routes.draw do
  match 'test' => 'bugs#test', :as=>:bug_test
  match 'bugs/:pr/:scope/info' => 'bugs#info', :as=>:bug_info
end

应用程序/控制器/ bugs_controller.rb

class BugsController < ApplicationController
  def test
  end

  def info
  end
end

应用程序/视图/错误/ test.erb

<%= bug_info_path(:pr=>1,:scope=>2) %>

应用程序/视图/错误/ info.erb

<%= params %>

当我浏览/test时,我得到了这个:

  

/错误/ 1/2 /信息

当我浏览/bugs/1/2/info

  

{“controller”=&gt;“错误”,“行动”=&gt;“信息”,“pr”=&gt;“1”,“范围”=&gt;“2”}

也许你可以尝试使用最小的rails应用程序然后添加内容直到我休息。