ログに記録された現在のユーザーを保存する場合は、コントローラーを編集できます。したがって、Artistを保存した後、UserArtistを保存できます。たとえば次のようになります。
def create
@artist = Artist.new(params[:artist])
if @artist.save
@user_artist = UserArtist.new(:artist_id => @artist.id, :user_id => current_user.id)
if @user_artist.save
#code...
else
#errors...
end
else
#errors...
end
end
(これを行うには、これまで試したことのない簡単な方法があります。その方法で検索して表示しますが、誰かがそれを知っている場合は教えてください)
また、モデルではセッション変数にアクセスできないため、コールバックの作成については説明しませんでした(覚えているだけです)
将来的に、1つのフォームにユーザーアーティストを動的に追加したい場合は、http://railscasts.com/episodes/196-nested-model-form-part-1およびhttp://railscasts.com/をチェックしてください。エピソード/197-nested-model-form-part-2
アップデート
これは私が前にあなたに言った方法です(それは両方の記録を保存します):
@artist = Artist.new(params[:artist])
@artist.user_artists.new(:user_id => current_user.id)
if @artist.save
#code
else
#errors
end
また、この興味深いエントリを見つけました。親オブジェクトを正常に保存した場合にのみ、変更をhas_manyアソシエーションに保存しますか?