Ruby on rails Rails:如何在has\u many上保存额外字段
实际上,我有一个has_many-through关联,以便从用户表链接家长和孩子。 下面是我在模型中得到的:Ruby on rails Rails:如何在has\u many上保存额外字段,ruby-on-rails,save,has-many,Ruby On Rails,Save,Has Many,实际上,我有一个has_many-through关联,以便从用户表链接家长和孩子。 下面是我在模型中得到的: class User < ActiveRecord::Base has_many :parents_to_children, class_name: ParentsUser, foreign_key: :children_id has_many :parents, through: :parents_to_children, source: :parent has_m
class User < ActiveRecord::Base
has_many :parents_to_children, class_name: ParentsUser, foreign_key: :children_id
has_many :parents, through: :parents_to_children, source: :parent
has_many :children_to_parents, class_name: ParentsUser, foreign_key: :parent_id
has_many :childrens, through: :children_to_parents, source: :children
end
class ParentsUser < ActiveRecord::Base
belongs_to :user
belongs_to :parent, class_name: User
belongs_to :children, class_name: User
end
为了保存数据,我正在这样做(到目前为止):
但是我得到一个错误:未知属性:关系类型
关于如何以优雅的方式实现这一点,您有什么想法吗?您缺少了
接受
的嵌套属性。将其写入您的用户
模型中
accepts_nested_attributes_for :parents_user
这可以解决问题。谢谢您的回答。是的,我意识到我需要为设置
接受嵌套的属性。但是,我仍然有一个问题,因为我根本不知道如何将这些数据附加到我的资源.childrens
中。想法?使用强参数怎么样?我已经允许[:relation]
参数传递:u.permit(:relation)
你能发布你的用户模式吗?
resource.childrens << user if user
resource.childrens.build(childrens: [user], relation_type: params[:user][:relation]) if user
accepts_nested_attributes_for :parents_user