0

次のようなパスがある場合:

user_messages_path(current_user)

次の URL を生成します。

users/1/listings

データベースにユーザー固有のコードを保存しているので、次のような URL を表示したくありません。

users/ID/listings

しかし、もっと好き

users/CODE/listings

ユーザーのコードでパスを使用するためにルートを更新するにはどうすればよいですか?

ありがとう

4

3 に答える 3

1
user_messages_path(current_user)

次のショートカットです。

user_messages_path(current_user.to_param)

これは一般的に次のことを行います。

user_messages_path(current_user.id)

あなたはできる:

  • 必要な文字列を渡します。user_messages_path('foo')

  • to_paramまたはモデルでオーバーライドする

パラメータからオブジェクトを取得するコードを更新するように注意してください。

于 2013-10-08T13:14:38.447 に答える
0

user.rb

def to_param
  uuid        # or whatever attribute you want to use instead of the id
end

の代わりにコントローラーでUser.find(params[:id])

User.find_by_uuid!(params[:id]) # adjust to the attribute name used in to_param 
于 2013-10-08T13:14:30.710 に答える