如何解决has_many 的作用域依赖销毁:通过关系
我有以下型号:
class User << ApplicationRecord
has_many :profiles
has_many :questions,through: :profiles
has_many :answers,through: :profiles
end
class Question < ApplicationRecord
has_many :answers
has_many :profiles
has_many :users,through: :profiles
end
class Answer < ApplicationRecord
belongs_to :question
has_many :profiles
has_many :users,through: :profiles
end
class Profile < ApplicationRecord
belongs_to :answer
belongs_to :user
belongs_to :question,optional: true
end
并且我使用标准的 rails 表单来使用所选答案更新 USER 模型,如下所示(在 HAML 中):
= form_for @user do |f|
- if @user.errors.any?
.alert.alert-danger
= @user.errors.full_messages
= f.collection_check_Boxes :answer_ids,@question.answers.all,:id,:label do |b|
- content_tag :div,class: "form-check" do
- b.label(class: "form-check-label") do
- b.check_Box(class: "form-check-input") + b.text
= f.submit 'Submit',class: 'btn btn-primary mt-4'
这工作正常,但是,当我在更新期间保存此表单中的值时,rails 首先从 Profiles 模型中删除所有未回答的选项,然后保存所选的选项 - 不论问题。
>我知道这是标准的 Rails 行为,但是我如何确定删除的范围?我希望这样,Rails 只会破坏 Profile 模型中与所选答案具有相同问题 ID 的答案。
这甚至可能吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。