ruby - 无法保存具有许多直通关系轨道的记录
问题描述
我试图通过与另一个模型的关系来保存一个具有 has_mnay 的模型,不幸的是它不允许保存让我解释一下
class Group < ActiveRecord::Base
has_many :group_members, inverse_of: :group
has_many :members, through: :group_members
end
class GroupMember < ActiveRecord::Base
belongs_to :group
belongs_to :member
validates_presence_of :group, :member
end
class Member < ActiveRecord::Base
has_many :group_members, inverse_of: :member
has_many :groups, through: :group_members
validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: true
end
所以在我的控制台中我创建了一个组
g = Group.last.dup (duplicating a record)
m = Member.last
g.members << m
g.save!
我得到这个错误
ActiveRecord :: RecordInvalid: Authentication went wrong: Members email is already used,
请注意,我在数据库中只有一个成员我不需要做其他事情,过去一天我一直在尝试这个,我找不到解决方案
解决方案
如果您收到此错误,通常意味着存在与 has_many 关系同名的属性/方法名称。我有一个名为“csv_products”的列名,它将存储要处理的产品的 csv 文件。并且有一个名为“has_many :products”的关系。
每次我尝试对“csv_products”进行操作(将其设置为 nil 或更新它)时,都会抛出此错误。我最终将其重命名为“csv_file”。
推荐阅读
- c# - 如何在 web.config 中设置相对路径以在同一解决方案中的另一个项目中归档?
- spring - 重试功能在 Spring Batch 中不起作用
- javascript - HTTP 请求 - 使用 Axios 在 Firebase 中删除 JSON 文件密钥
- javascript - 在 Chartsjs 中获取折线图时遇到问题 *up* 到 1,bkg 填充 *under* 图表线
- python-3.x - 在 AWS Lambda 上使用 Python 3.6 运行 Headless Chrome - 权限错误
- javascript - 如何将网站的下一页预加载到浏览器中
- .net - Android Xamarin 应用程序中 System.Threading.Tasks.RangeWorker.FindNewWork 中的 NullReferenceException
- javascript - 使用具有不同 var 的一个 JS 的多个输入复选框
- javascript - 尝试使用 ajax 方法将 javascript 变量发布到 php 文件:POST 但在 php 文件中的 $POST 数组中获取未定义的索引
- regex - 如何在包含表格单元格的 Word 文档选择中迭代和替换 VBA RegExp 匹配项(或其部分)?