Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 3 Rails 3路由多个参数?_Ruby On Rails 3_Routes - Fatal编程技术网

Ruby on rails 3 Rails 3路由多个参数?

Ruby on rails 3 Rails 3路由多个参数?,ruby-on-rails-3,routes,Ruby On Rails 3,Routes,这可能是一个基本的问题,我甚至不确定这是否可能,但接下来是 如果我有一个由事件组成的事件模型,URL是/events以查看所有事件,和/events/:id以查看单个事件。。。我是否也可以执行类似于/events/:status的操作来重定向到索引控制器,并根据该状态显示(比如)以前的非活动事件等,但同时保留/events/:id功能 所以基本上: /events/17将带我进入创建的第17个事件,/events/previous将带我进入所有已发生和已过去事件的列表 这可能吗?如果是,我将如何

这可能是一个基本的问题,我甚至不确定这是否可能,但接下来是

如果我有一个由事件组成的事件模型,URL是/events以查看所有事件,和/events/:id以查看单个事件。。。我是否也可以执行类似于/events/:status的操作来重定向到索引控制器,并根据该状态显示(比如)以前的非活动事件等,但同时保留/events/:id功能

所以基本上:

/events/17将带我进入创建的第17个事件,/events/previous将带我进入所有已发生和已过去事件的列表

这可能吗?如果是,我将如何设置路线

我试过:

match "/events/:status" => "events#index"

resources :events
但这只是覆盖了:id一个,所以我不能再访问单个事件。我还在学习rails的所有术语,所以我的搜索能力有点有限。

试试这个:

match "/events/previous" => "events#index", :defaults => { :status => 'previous' }

这假设您的状态为“限制数量”,因此您可以在联机中手动定义每个限制。

您可以使用段键约束来设置路由

比如说,

match "/events/:id" => "events#show", :constraints => { :id => /\d+/ }

match "/events/:status" => "events#index", :constraints => { :status => /\w+/ }
在这种情况下,
/events/17
将路由到事件控制器中的显示操作,而
/events/previous
将路由到索引操作


若你们愿意的话,你们可以将你们的状态限制设置得更具体一些,但我认为这应该是可行的。

虽然这很好,但我必须详细说明一些其他的动作,比如我以前不需要的“新建”。我想这有点难决定。