0
私は現在、私のプロジェクトでhas_many:throughの関連付けに苦労しています。私は新しいグループを作成しようとしたが、それがうまくいかなかったときRailsでhas_many throughを使って新しいレコードを作成するには?
これは私のモデルので
class Group < ActiveRecord::Base
has_many :user_groups ,dependent: :destroy
has_many :users , through: :user_groups
end
class User < ActiveRecord::Base
has_many :user_groups ,dependent: :destroy
has_many :groups , through: :user_groups
end
class UserGroup < ActiveRecord::Base
belongs_to :user , inverse_of: :placements
belongs_to :group , inverse_of: :placements
validates :level , presence: true
end
です。 これは私のコントローラです
class GroupController < ApplicationController
def create
group = Group.new(group_params)
group.users << User.find_by(id: current_user.id)
if group.save
render json: group, status: 201, location: [group]
else
render json: { errors: group.errors }, status: 422
end
end
private
def group_params
params.require(:group).permit(:name, :shuttle_price, :court_price)
end
end
しかし、私がこのメソッドを呼び出すと、このエラーが発生します。この行で
Could not find the inverse association for group (:placements in Group)
group.users << User.find_by(id: 6)
、どのように私はこの問題を解決することができますか?
ありがとうございます!
私はこのレコードのUserGroup.level = "admin"をどうすればできますか?私はこの 'group.users.find_by(id:current_user.id).level =" admin "'の前にgroup.saveを試しましたが、何かエラーがありました。ありがとう! – user3403614