【发布时间】:2017-02-01 19:02:27
【问题描述】:
我无法通过第三个模型更新与当前模型相关的嵌套属性。
重点模型:简介
class Profile < ApplicationRecord
belongs_to :user
has_many :phone_numbers
##Set nested attributes
accepts_nested_attributes_for :phone_numbers, reject_if: :all_blank, allow_destroy: true
网络属性:电话号码
class PhoneNumber < ApplicationRecord
belongs_to :profile
end
第三个模型:用户
class User < ApplicationRecord
has_one :profile
end
在数据库中他们的关系是profile.user_id = user.id, phone_number.user_id = user.id
问题:我如何在更新个人资料时更新电话号码?
我试过了
<%= form_for @profile, url: {action: "update"} do |f| %>
...
<%= f.fields_for :phone_numbers do |ff| %>
...
并收到错误消息:
Mysql2::Error: 'where'中的未知列'phone_numbers.profile_id' 子句': SELECT
phone_numbers.* FROMphone_numbersWHEREphone_numbers.profile_id= 1
【问题讨论】:
-
我知道,您从未接受任何问题的答案。这是该站点的规则之一 - 您选择一个来通知用户问题已解决。确保在您的问题(问题中陈述的第一个问题)得到解答时接受答案。
标签: mysql ruby-on-rails