私は名前:文字列のアーティストモデルを持っています。そして、私が今持っている /users/1/artists/1/posts の代わりに /users/1/artists/jimi-hendrix/posts が欲しい
問題は、アーティスト名に Friendly_id を使用できないと思うことです。これは、同じアーティスト名が複数あるためですが、すべての「ジミ・ヘンドリックス」エントリに jimi-hendrix などの同じスラッグを使用したいためです。例:
/users/3/artists/jimi-hendrix/posts
/users/55/artists/jimi-hendrix/posts
/users/106/artists/jimi-hendrix/posts
Friendly_id は次のようになります: (これは私にはありません) /users/3/artists/jimi-hendrix/posts /users/55/artists/jimi-hendrix--2/posts /users/106/artists/jimi -ヘンドリックス--3/posts
私が考えているのは、id の代わりにそのアーティスト名パラメーターをコントローラーに渡すことです。しかし、名前を取得してすべての空白を「-」に置き換えてから、空白をコントローラに追加し直す必要がありますか?
これが私のリンクになります: (artist.name.gsub!() のようなことはできますか??)
<% @artists.each do |artist| %>
<%= link_to artist.name, user_artist_posts_path(@user, artist.name) %>
<% end %>
次に、コードをコントローラーに戻すときに逆にしますか?
def index @name = params(:artist_id).gsub() # ? @posts = ... .... 終了
または、属性に重複した名前がある場合、--2、--3 を追加しないように、Friendly_id に一意でないスラッグを含める方法を誰かが知っていますか?