【发布时间】:2017-08-20 19:16:19
【问题描述】:
我有 3 个 Rails 模型:
class User < ActiveRecord::Base
has_and_belongs_to_many :char_factors
end
class CharFactor < ActiveRecord::Base
has_and_belongs_to_many :users
end
class UserCharFact < ActiveRecord::Base
belongs_to :user
belongs_to :char_factor
end
在上面的User 和CharFactor 模型通过UserCharFact 模型连接。
我正在创建新的关系:
def create
@user_character = UserCharFact.create({:user_id => @user.id, :char_factor_id => factor_id.id})
end
以上似乎工作正常。但是我找不到删除两个表之间的特定join relation 的方法。我尝试了以下方法:
def destroy
@user_character = CharFactor.find(params[:id])
@user.char_factors.delete(@user_character)
end
但它实际上是从CharFactor 表中删除值,而不仅仅是删除关联
【问题讨论】:
标签: mysql ruby-on-rails ruby ruby-on-rails-4 has-and-belongs-to-many