0
IDではなくユーザー名に基づいてカスタムルートを取得しようとしています。私はユーザーのショーページに行くために働いているが、同じ構文を使って彼の投稿とコメントを見ることができるように、リソースをネストしようとしている。カスタムネストされたルート
例:
作品... "mysite.com/users/ ユーザ名 /"
が動作しない...「mysite.com/users/ ユーザ名 /記事/」
routes.rbを
...
# Users with the Username...
match 'users/:username' => "users#show" do
get :posts
get :comments
end
# Users with the ID...
resources :users do
get :posts
get :comments
end
...
私は以前このソリューションを見てきました。それはハックのように思えますし、組み込みのfindメソッドをオーバーライドし、エラーの束につながる可能性があります。レール3.1内でこれを行うには、よりクリーンな方法が必要です。 –
これはモデルのfindメソッドには何ら影響しません。そのため、発生する可能性のあるエラーがわかりません。はい、コントローラの検索条件をユーザー名で検索するために条件を変更する必要がありますが、とにかくそれをやっていると仮定します。これは、オブジェクトのto_paramメソッドをオーバーライドするだけです。つまり、params [:id]がユーザー名になります。また、自動的にユーザー名を使用してルートを構築します。私はそれがどのように実際にはるかにクリーナーを得ることができるか分からない。コントローラー内のパラメーターから数値IDを引き続き使用する場合は、別の話です。 – miked