Ruby on rails 编辑使用.build保存的属性
我正在尝试编辑一个字段,以便在用户创建帐户时,它作为所有者布尔值设置为true进入数据库。我得到了未定义的错误方法`ownerRuby 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,
= 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)