Rails 3.1一个路径的多个控制器

时间:2012-10-03 10:00:42

标签: ruby-on-rails-3

我们有两个模型,区域和商店,我们希望在同一条路径上运行:www.mysite.com/the_name_of_the_thing_here

我们想要做的是通过区域表进行匹配以显示区域页面,如果没有匹配,则通过商店表格并显示商店页面。我们不太确定在哪里放置这个逻辑(在控制器区域?)以及如何切换控制器。有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:1)

我认为您可以使用控制器操作,例如

@area = Area.find_by_name(params[:name])
@store = Store.find_by_name(params[:name])
if @area
  redirect_to area_path(@area)
elsif @store
  redirect_to store_path(@store)
else
  redirect_to help_url
end

如果要更改内容,请仅使用其他控制器方法定义变量:

@thing = Area.find_by_name(params[:name]) || Store.find_by_name(params[:name])

并将其传递给视图

<%= thing.name %>