我在 ruby 代码中使用命名路由。我来自 phpworld,您将使用 $_GET
和 $_POST
传递信息。我想知道是否有办法将其放入routes.rb中,如下所示:
map.with_options :controller => 'test' do |m|
m.someurl 'someurl?search=someterm', :action => 'index'
end
目前返回can't conversion Hash into String
。谢谢!
贾斯汀
最佳答案
如果您只想使用查询字符串,则根本不需要告诉您的路线。 params 对象将包含所有传递的参数。
map.with_options :controller => 'test' do |m|
m.some_url 'someurl', :action => 'index'
end
然后当您使用辅助方法时:
some_url_path(:search=>“someterm”)
将为您创建查询字符串值。
但是,如果您想将参数传递给 Controller ,您可以将它们绑定(bind)到您的路由中:
map.connect ':controller/:action/:id/:search'
在您的 Controller 中,您可以访问:
params[:search]
在你的情况下,这将是这样的:
map.with_options :controller => 'test' do |m|
m.some_url 'someurl' :action => 'index'
end
Rails Routing Guide提供了关于该主题的精彩概述。
关于ruby-on-rails - ?在routes.rb和map.with_options ruby中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2107369/