あなたが得ることができますごとのリソース識別子のcu Resourceインスタンスのmember_scopeメソッドとnested_scopeメソッドを再定義して、累積します。以下#nested_scopeについての質問については
resources :users do
@scope[:scope_level_resource].tap do |u|
def u.member_scope
"#{path}/:username"
end
def u.nested_scope
"#{path}/:#{singular}_username"
# member_scope also usable here, assuming username will be nowhere in nested routes.
end
end
end
:
resources :members do
resources :playlists, only: :index
end
その後、paramは次のようになります:ユーザ名:代わりにちょうどのmember_usernameを使用すると、ルーティングでこのような何かを行う場合に使用されます。これは、コレクションの組み立て時にプレイリストコントローラーで便利なので、要求の範囲を推測できます。
申し訳ありませんが、私は少し追加しましたが、次のエラーが表示されます: – Chiggins
問題が見つかりませんでした。私のshowメソッドは "@user = User.find(:params [:id])"を実行していたので、ユーザ名で検索するように変更しました。 – Chiggins
コントローラのコードを変更してください:User.find(params [:id])ではなくUser.find_first_by_username(params [:id])、to_paramの本文を "#{self.id} - #{self.username}"に変更してください –