我有一个名为Spaces
的模型,该模型具有不同类型的地方……例如酒吧,餐厅等。它具有相同的列,相同的模型, Controller 等。没有花哨的STI,我只有一个名为Space_type
的字段,想确定一条别名路由。
代替domain.com/spaces/12345
,它应该是/bars/12345
或/clubs/12345
目前我有:
resources :spaces do
collection do
get :update_availables
get :update_search
get :autocomplete
end
member do
post :publish
post :scrape
end
resources :photos do
collection do
put :sort
end
end
resources :reviews
end
另外,有没有一种方法可以使我每次使用space_url时都可以确定要使用哪个?
最佳答案
路线不是直接与模型进行交互的方法。因此,只要编写一条标准路线,就可以使事情正常。例如,要为自己的/bars/12345
(或任何 Controller 名称)制作/clubs/12345
和spaces_controller
,您可以创建类似以下的路由:
scope :path => '/bars', :controller => :spaces do
get '/:id' => :show_bars, :as => 'bar'
end
scope :path => '/clubs', :controller => :spaces do
get '/:id' => :show_clubs, :as => 'clubs'
end
关于ruby-on-rails - Rails路由别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5674684/