Ruby on rails 如何通过Rails 2.3.x路由传递默认查询参数
我想做些琐碎的事。我有一堆需要映射的URL,如下所示:Ruby on rails 如何通过Rails 2.3.x路由传递默认查询参数,ruby-on-rails,Ruby On Rails,我想做些琐碎的事。我有一堆需要映射的URL,如下所示: http://example.com/foo http://example.com/foo/something 两者都需要转到同一控制器/操作。我遇到的问题是http://example.com/foo调用时,我需要指定一个默认查询参数。我认为routes.rb中的:defaults散列就是这样做的,但不幸的是,以下内容不起作用: map.connect 'foo', :controller => 'something', :acti
http://example.com/foo
http://example.com/foo/something
两者都需要转到同一控制器/操作。我遇到的问题是http://example.com/foo调用时,我需要指定一个默认查询参数。我认为routes.rb中的:defaults散列就是这样做的,但不幸的是,以下内容不起作用:
map.connect 'foo', :controller => 'something', :action => 'anaction',
:defaults => { :myparam => 'foobar' }
这应该是路由http://example.com/foo
到something控制器,一个动作动作,并使参数[:myparam]指向字符串“foobar”
我假设第二个例子http://example.com/foo/something
,我需要一条额外的路线
解决这个问题的最佳方法是什么?未经测试,但:
map.connect 'foo', :controller => 'something', :action => 'anaction', :myparam => 'foobar'
它看起来像是其中的:controller
和:action
参数没有任何特殊之处,只是最终输入到参数中。似乎证实了这一点
更正式地说,您可以包括
路由中的任意参数,
因此:
这将
将:page参数传递给所有
与此匹配的传入请求
路线
未经测试,但:
map.connect 'foo', :controller => 'something', :action => 'anaction', :myparam => 'foobar'
它看起来像是其中的:controller
和:action
参数没有任何特殊之处,只是最终输入到参数中。似乎证实了这一点
更正式地说,您可以包括
路由中的任意参数,
因此:
这将
将:page参数传递给所有
与此匹配的传入请求
路线
我不会通过在routes文件中添加这样的逻辑来使事情复杂化,我只会在我的操作中这样做:
params[:my_param] ||= 'foobar'
我不会通过在routes文件中添加这样的逻辑来使事情复杂化,我只会在我的操作中这样做:
params[:my_param] ||= 'foobar'
为我工作——它与Rails 3兼容!:为我工作--而且它与Rails 3兼容!:P