Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何通过Rails 2.3.x路由传递默认查询参数_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何通过Rails 2.3.x路由传递默认查询参数

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

我想做些琐碎的事。我有一堆需要映射的URL,如下所示:

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