如何通过单个控制器重定向两个不同的路由?

时间:2012-10-24 14:40:16

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

我有两条相同的路由resources :errorsroutes.rb内的不同文件夹中有不同的网址。

Routes:
---------

namespace :enr do
  namespace :locations do #( url: enr/locations/:location_id/errors)
    resources: errors 
  end

  namespace :rds do
    resources :errors #(url: enr/rds/errors)
  end
end

controller:
------------

I have a controller for `enr/rds/errors` only. 

如何根据IF条件更改这两个网址。例如,

如果location_id为零   我需要展示这个#(url: enr/rds/errors) 其他   我需要展示(url: enr/locations/:location_id/errors)

所以它会改变取决于location_id。我应该在哪里写这个条件来改变location_id的网址。任何例子都会更受欢迎。感谢

1 个答案:

答案 0 :(得分:1)

<% if location_id.nil? %>
  <%= link_to 'nil location_id', enr_locations_errors %> 
<% else %>
  <%= link_to 'not nil location_id', enr_rds_errors %> 
<% end %>

enr_locations_errorsenr_lrds_errors不是唯一可用的路径。您可以使用七种默认路线之一(indexnewcreateshoweditupdate,{{1} })或添加自定义的。检查destroy并查看here