【问题标题】:How to rename index path in routes file?如何重命名路由文件中的索引路径?
【发布时间】:2014-08-01 05:18:40
【问题描述】:

如何仅重命名index 路径?

routes.rb

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

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

我需要/trigger 甚至/tasks/trigger 来代替URL 中的/tasks,而不是rails3

我试过了

1.

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

2.

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

两人都吐了errors

有什么想法吗?

【问题讨论】:

  • 任务控制器中的索引方法是否命名为“触发器”?

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


【解决方案1】:

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

get 'trigger' => 'tasks#index'

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    根据您的要求,您希望将索引路由设置为“/触发器”。

    以下是解决方案。

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

    【讨论】:

    • 欢迎来到 SO。可以详细说明或解释您的代码吗?
    【解决方案3】:

    只是限制索引路由在您的资源调用中生成:

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-03-04
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 2014-05-19
      • 1970-01-01
      • 1970-01-01
      • 2018-09-29
      • 2017-11-06
      相关资源
      最近更新 更多