我的rails应用程序设置为使用此RailsCast中描述的子域:
http://railscasts.com/episodes/221-subdomains-in-rails-3
但是,现在,路径渲染如下:
http://organization.domain.com/organizations/1/edit
我已经设置了控制器来选择基于子域的组织,所以我想知道是否有办法去掉路径的/ organizations /:id部分,这样:
link_to edit_organization(@organization)
转到http://organization.domain/edit,而不是http://organization.domain/organizations/:id/edit
由于组织内部会有许多嵌套资源(人员,捐赠等),因此URL的结束时间非常长,并且路径生成方法仍然非常简单。
有办法做到这一点吗?
答案 0 :(得分:0)
您可以使用以下路线:
resource :organization, :path => ""
会将你的网址缩减为'http://organization.domain/:id / edit`。
摆脱:id
是棘手的,我不认为它可以直接完成。我会做的是:
resource :organization, :path => "", :only => [] do
match "index", :via => :get
match "new", :via => :get
match "show", :via => :get, :constraints => {:subdomain => /[a-zA-Z]+/}
match "edit", :via => :get, :constraints => {:subdomain => /[a-zA-Z]+/}
match "update", :via => :put, :constraints => {:subdomain => /[a-zA-Z]+/}
match "create", :via => :post
end
不是很干,但我认为它应该有用。