我在ruby代码中使用了命名路由。我来自phpworld,您将使用$_GET
和$_POST
传递信息。我想知道是否有办法将其放入routes.rb中,如下所示:
map.with_options :controller => 'test' do |m|
m.someurl 'someurl?search=someterm', :action => 'index'
end
目前正在返回can't convert Hash into String
。谢谢!
贾斯汀
答案 0 :(得分:3)
如果您只想使用查询字符串,则根本不需要告诉您的路由。 params 对象将包含任何传递的参数。
map.with_options :controller => 'test' do |m|
m.some_url 'someurl', :action => 'index'
end
然后当你使用辅助方法时:
some_url_path(:search =>“someterm”)
将为您创建查询字符串值。
但是,如果要将参数传递给控制器,可以在路径中绑定它们:
map.connect ':controller/:action/:id/:search'
然后,您可以在控制器中访问:
params[:search]
在你的情况下,这就像是:
map.with_options :controller => 'test' do |m|
m.some_url 'someurl' :action => 'index'
end
Rails Routing Guide提供了有关该主题的精彩概述。