1

内のテーブル間のレコードを結合削除私は3つのレールモデルを有しています。のみレール4

私は、新しい関係を作成しています:

def create 
    @user_character = UserCharFact.create({:user_id => @user.id, :char_factor_id => factor_id.id}) 
end 

以上が正常に動作しているようです。しかし、私は特定のjoin relationを2つのテーブルの間で削除する方法を見つけることができません。私は、次の試してみました:

def destroy 
    @user_character = CharFactor.find(params[:id]) 
    @user.char_factors.delete(@user_character) 
end 

をしかし、それは実際にCharFactorテーブルからだけではなく、あなたが他のモデルのレコードを削除するだけのようにそれを削除協会

答えて

1

UserCharFact.where(char_factor_id: params[:id], user_id: @user.id).destroy_all

1

を削除する値を削除します。

user_char_factor = UserCharFactor.find_by(user_id: user_id, char_factor_id: char_factor_id) 
user_char_factor.destroy if user_char_factor 
関連する問題