我更喜欢手工编写我的Rails应用程序的路线,现在我有一种情况,我不知道什么是最好的做事方式。我想要一个建筑物控制器,为每个建筑物显示不同的页面,如:
building/town_center
building/sawmill
..
以上每个都应该有自己的动作和视图页面。我通常会创建一条路线:
scope :path => '/building', :controller => :building do
get '/view/:slug' => :view, :as => 'view_building'
end
但是这只指定了一个动作,然后需要调用另一个内部控制器方法来重定向到需要显示的模板。所以,我想您的意见,您是否只是明确地为每个建筑物(和行动)指定了不同的路线?或者只是在view_building动作中重定向?
答案 0 :(得分:1)
我认为你是在追求这样的事情:
match "/building/:name", :to => "buildings#show", :as => :building
然后在您的控制器操作'show'中只显示建筑物名称的模板:
render :template => 'buildings/#{params[:name]}'