Rails 2.3,Ruby 1.8.7
我试图通过rails路由传递变量。我还没有能够找到一个案例,任何人都可以用一些不是模特身份的东西来做这件事。我不确定这是否是问题的根源。
在视图中:
reference_string = "string of random letters and numbers"
something_path(reference_string)
在routes.rb
:
map.something 'something/:reference_string', :controller => :my_controller, :action => "my_action", :reference_string => "reference_string"
在my_controller
:
def my_action(reference_string)
...
end
我最终得到了一个参数错误:
wrong number of arguments (0 for 1)
先谢谢
答案 0 :(得分:1)
控制器操作不接受参数。
更新您的控制器操作,使其如下所示:
def my_action
...
end
然后,要访问reference_string
,请在控制器或视图中的任意位置尝试params[:reference_string]
。例如,您可以这样做:
def my_action
redirect_to root_url, :notice => "You sent us the reference string #{params[:reference_string]}!"
end