如何在路由文件中重命名索引路径?

时间:2014-08-01 05:18:41

标签: ruby-on-rails ruby-on-rails-3 routing

如何仅重命名index路径?

的routes.rb

resources :tasks, :except => [:create] do 
 collection do 
  .............. 
 end 

 member do 
  ............. 
 end 
end

而不是{strong>网址中的/tasks我需要/trigger甚至/tasks/trigger,我会rails3

我试过

1

collection do 
'/', to: 'tasks#trigger' 
end

2

resources :tasks, :except => [:create] do
   get '/task', to: 'task#trigger', as: task_index
end

两者都呕吐errors

任何想法?

3 个答案:

答案 0 :(得分:3)

对于像' / trigger'这样的网址添加到routes.rb:

get 'trigger' => 'tasks#index'

对于像' / tasks / trigger'这样的网址修改routes.rb:

resources :tasks, :except => [:create] do 
  collection do
    get 'trigger' => 'tasks#index'
  end
end

如果任务控制器中的索引方法命名为'触发器,则'tasks#index'替换为'tasks#trigger'

答案 1 :(得分:1)

仅限制索引路线在资源调用中生成:

resources :tasks, :except => [:create, :index]

然后做自己的自定义路线。对于'/ trigger'

 get 'trigger', to: 'task#trigger', as: 'trigger

答案 2 :(得分:1)

如果你想制作自己的索引路线,那么你需要做两件事

1-您需要禁用资源创建的索引路径

2-根据需要定义自己的路径。

根据您的要求,您希望将索引路由设为'/ trigger'。

以下是解决方案。

get 'trigger' => 'tasks#index'
resources :tasks, :except => [:create, :index] do 
 collection do 
  .............. 
 end 

 member do 
  ............. 
 end 
end