2011-07-20 14 views
2

私はユーザーモデルを持っていて、それから個別のユーザー、例えばperson1がURLを持っています:www.myapp.com/person1どうすればwww.myapp.com/users/person1が表示されますか?それは何と呼ばれるでしょうか?Rails URLの質問

ありがとうございました!

+0

チェック 'ます。http:// guides.rubyonrails.org/routing.html'また、あなたの実装では、たとえば、ユーザーがユーザー名を'何を持っている場合は、少し曖昧になりますusers' ?あなたのアプリケーションのモデル名の1つと同じ名前ですか? – user482594

+0

素晴らしい、ありがとう! – Connor

答えて

4

あなたroutes.rbファイル内のルートを定義する必要があります。しかし、あなたはこの種のルートが定義されている他のルートを上書きする可能性があることを知る必要があります。なぜなら、それはどんな文字列とも一致するからです。

例えば

あなたのユーザ名が正規表現に一致した場合、あなたがそうでなければ、それは確かに衝突し、制約

match "/:user" => "users#show", :constraints => { :user => /some-regexp/ } 

としてそれを定義することができますし、あなたのルートファイルの最後の一つとして、このルートを設定することを忘れないでください他のルートと一緒に。

読むthis完全な参照のための

+0

素晴らしい。ありがとう、ファビオ!私はそれができるようになるとそれに気付くでしょう。 – Connor

+0

@ConnorMontgomery:答えにいくつかの詳細を追加しました。 P.S.あなたは1人の回答者でもいつでも回答を受け入れることができます;-) – Fabio

+0

ええ、それはちょうど私が7分... 1分待つ必要があると言います。その時間デルタが完了すると、私はそれを受け入れるでしょう;) そして、説明のためにあまりにもありがとう! – Connor

0

アプリに同じものの「2つの」ルートを追加します。

match "/:user" => "users#show" 

を、あなたはparams[:user]で与えられたユーザー名を取得します:

# Shorter url to show store items by tags 
map.connect '/s/tags', 
    :controller => 'music', 
    :action  => 'show_by_tags' 
map.connect '/music/s/tags', 
    :controller => 'music', 
    :action  => 'show_by_tags'