1

この複雑なケースで Rails レコードの所有者を設定するにはどうすればよいですか。

ユーザー、イベント、タグのモデルがあります。タグは多態的です。

イベントフォームに複数選択があり:tag_idsます。

タグ作成コントローラーには次のものがあります。

def create
  klass = [Event, ...some other models.].detect { |t| params["#{t.name.underscore}_id"]}
  @taggable = klass.find(params["#{klass.name.underscore}_id"])
  @tag = @taggable.tags.new(params[:tag]
  if save.......
end

ここまでは順調ですね。ただし、Tag モデルには:tagged_by_id列もあり、現在のユーザーに設定する必要があります。

@tag = @taggable.tags.new(params[:tag].merge(tagged_by_id: current_user.id))

それはうまくいくようです。しかし、そうではありません。

tagged_by_id = nil

私は何を間違っていますか?

ありがとう

4

0 に答える 0