如何处理这种路由情况是Rails

时间:2012-01-31 02:21:30

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

我更喜欢手工编写我的Rails应用程序的路线,现在我有一种情况,我不知道什么是最好的做事方式。我想要一个建筑物控制器,为每个建筑物显示不同的页面,如:

building/town_center
building/sawmill
..

以上每个都应该有自己的动作和视图页面。我通常会创建一条路线:

  scope :path => '/building', :controller => :building do
    get '/view/:slug' => :view, :as => 'view_building'
  end  

但是这只指定了一个动作,然后需要调用另一个内部控制器方法来重定向到需要显示的模板。所以,我想您的意见,您是否只是明确地为每个建筑物(和行动)指定了不同的路线?或者只是在view_building动作中重定向?

1 个答案:

答案 0 :(得分:1)

我认为你是在追求这样的事情:

  match "/building/:name", :to => "buildings#show", :as => :building

然后在您的控制器操作'show'中只显示建筑物名称的模板:

  render :template => 'buildings/#{params[:name]}'