这可能是一个基本问题,我甚至不确定它是否可行,但这里也是如此。
如果我有一个由事件组成的事件模型,并且URL是/ events来查看所有事件,而/ events /:id则用于查看单个事件...我还可以执行类似/ events /:status的操作重定向到索引控制器并根据状态显示say,previous,inactive事件等,还保留/ events /:id功能?
基本上是这样的:
/ events / 17会带我参加第17个活动,而event / previous会带我到所有已经过去的活动列表。
这可能吗?如果是这样,我将如何设置路线?
我试过了:
match "/events/:status" => "events#index"
resources :events
但是这只是覆盖了:id one,所以我再也无法参加个别活动了。我还在学习rails的所有术语,所以我的搜索能力有限。
答案 0 :(得分:1)
试试这个:
match "/events/previous" => "events#index", :defaults => { :status => 'previous' }
这假设您的状态是限制编号,因此您可以手动在线定义所有这些状态。
答案 1 :(得分:1)
您可以使用细分键约束来设置路线。
例如,
match "/events/:id" => "events#show", :constraints => { :id => /\d+/ }
match "/events/:status" => "events#index", :constraints => { :status => /\w+/ }
在这种情况下,/events/17
将路由到事件控制器中的show动作,而/events/previous
将路由到索引操作。
如果需要,您可以将状态限制设置为更具体,但我认为这应该有效。