Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:如何在has\u many上保存额外字段_Ruby On Rails_Save_Has Many - Fatal编程技术网

Ruby on rails Rails:如何在has\u many上保存额外字段

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

实际上,我有一个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_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