ruby-on-rails - Rails路由别名

标签 ruby-on-rails ruby-on-rails-3 routes url-routing custom-routes

我有一个名为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/12345spaces_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/

相关文章:

ruby-on-rails - 处理 Rails 3.1 应用程序中不存在的路由

ruby-on-rails - 主干和 rails 。为什么要在 Backbone 中设置路由?

ruby-on-rails - accepts_nested_attributes_for 停止我的子表单渲染?

javascript - react 路由器中的相对路由

ios - 如何在 iOS6 中获取行车方向数据?

ruby-on-rails - 由于 "Pry failed to get user input using ` Readline`,无法在终端中运行 rails c。”

Ruby on Rails 应用程序无法识别 HTML/CSS div

ruby-on-rails - Rails 3.1 和 Assets 管道 : Trouble on deploying with Capistrano

linux - Capistrano 部署的心理错误

node.js - 如何从 Express 路由中的 URL 获取可选语言参数?