1

この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/organizations/:id/editではなく、 http : //organization.domain/editに移動します

組織内には多くのネストされたリソース (人、寄付など) が存在するため、URL が極端に長くならないようにし、パス生成方法が非常に単純であることが重要です。

これを行う方法はありますか?

4

1 に答える 1

0

次のようなルートを使用できます。

resource :organization, :path => ""

これにより、URL が「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

あまり乾燥していませんが、うまくいくと思います。

于 2012-07-16T14:46:38.063 に答える