Ruby on rails 编辑使用.build保存的属性

Ruby on rails 编辑使用.build保存的属性,ruby-on-rails,Ruby On Rails,我正在尝试编辑一个字段,以便在用户创建帐户时,它作为所有者布尔值设置为true进入数据库。我得到了未定义的错误方法`owner = form_for @school do |f| = f.label :school_name, "School Name" = f.text_field :school_name, :class => 'form-control' = f.label :latitude, "Latitude" = f.text_field :latitude,

我正在尝试编辑一个字段,以便在用户创建帐户时,它作为所有者布尔值设置为true进入数据库。我得到了未定义的错误方法`owner

= form_for @school do |f|
  = f.label :school_name, "School Name"
  = f.text_field :school_name, :class => 'form-control'
  = f.label :latitude, "Latitude"
  = f.text_field :latitude, :class => 'form-control'
  = f.label :longitude, "Longitude"
  = f.text_field :longitude, :class => 'form-control'
  = f.label :radius, "Radius"
  = f.text_field :radius, :class => 'form-control'
  = f.fields_for :admins do |ff|
    = ff.label :email
    = ff.text_field :email, :class => 'form-control'
    = ff.label :password
    = ff.password_field :password, :class => 'form-control'
    = ff.label :password_confirmation
    = ff.password_field :password_confirmation, :class => 'form-control'
  = f.submit :class => 'submit-button'

因为
@school.admins
是多个管理员的集合,所以它没有
所有者
方法,该方法存在于该集合中的各个管理对象上。

调用
@school.admins.build
时,它会返回一个新的admin实例,但您不会对该实例执行任何操作。您需要将其放入变量中,然后为其
owner
属性指定一个值。看起来是这样的:

@school = School.new
@admin = @school.admins.build
@admin.owner = true
但是
build
方法采用attributes参数,因此您可以将其缩短为:

@school = School.new
@admin = @school.admins.build(owner: true)

不要忘记,您还需要在某个时候保存此对象。

请在Rails控制台中键入Admin.attribute\u名称时发布完整的错误消息,它会返回什么?[“id”、“电子邮件”、“加密的\u密码”、“重置密码\u令牌”、“重置密码\u发送时间”、“记住\u创建时间”、“登录次数”、“当前登录时间”,“上次登录”、“当前登录ip”、“上次登录ip”、“创建于”、“更新于”、“学校id”、“所有者”]@admin=@school.admins.build(所有者:true)不起作用“它不起作用”“不要给我任何我可以用来帮助解决问题的信息。它以什么方式不起作用?所有者字段没有像正常情况一样更新保存的所有内容
@school = School.new
@admin = @school.admins.build(owner: true)