我有一个名为Spaces的模型,它有不同类型的地方……比如Bars,Restaurants等.它有相同的列,相同,模型,控制器等.没有花哨的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它可以找出使用哪一个?
解决方法
路线不是直接与您的模型交互的方式.因此,只要您编写标准路线,就可以使事情顺利进行.例如,要为您的space_controller(或控制器的名称)创建/ bars / 12345和/ clubs / 12345,您可以创建以下路由:
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