29

更新代码格式以便更好地查看。

伙计们,

我一直在看这个一段时间,但我不明白这里可能会出现什么问题。我正在使用设计。

class User < ActiveRecord::Base
  has_many :addresses
  accepts_nested_attributes_for :addresses

  # Other stuff here
end

class Address < ActiveRecord::Base

  belongs_to :user

  validates_presence_of :zip #:street_address1, 

结尾

-------------------- 日志输出开始 --------------- ---

在 2011-05-28 11:43:27 -0700 开始 POST "/users" for 127.0.0.1 由 RegistrationsController#create 作为 HTML 参数处理:{"utf8"=>"√", "authenticity_token"=>"CEmdqlsmdYa6Jq0iIf5KAxxISsUCREIrFNXWkP80nhk= ", "user"=>{"email"=>"a2@gmail.com", "password"=>"[FILT ERED]", "addresses_attributes"=>{"0"=>{"street_address1"=> "234 Pitkin Ct.", "zip"=>"12456"}}}, "commit"=>"Sign up"} 警告:无法批量分配受保护的属性:addresses_attributes SQL (0.0ms) BEGIN SQL (164.0 ms)显示表
用户负载(0.0ms)选择usersidusers哪里 ( users.email

-------------------- 日志输出结束 --------------- ---

zip 存在于发布的数据中,并且发布的数据似乎格式正确。在网页表单上,我收到“地址 zip 不能为空白”的错误。我已经挖掘了导致“无法批量分配受保护属性”警告的原因,但没有找到任何可以帮助我的东西。

感谢您的想法和指点。

-S

4

4 回答 4

39

看看这里并学习:)

http://railscasts.com/episodes/26-hackers-love-mass-assignment


编辑:

拥有accepts_nested_attributes_for用户模型使您能够将数据发送到地址模型。

然后,在地址模型中,您必须设置请求的attr_accessible

于 2011-05-28T19:28:22.013 回答
11

SpecificModel( appfolder /app/model/specific_model.rb )内部

尝试使用

attr_accessible :addresses_attributes, :another_attribute_to_make_mass_assignable, :another_attribute, etc.

于 2011-05-28T19:14:15.773 回答
5

现在(2013 年 4 月)你应该开始使用https://github.com/rails/strong_parameters

于 2013-05-11T14:06:11.823 回答
3

只需在模型中包含数据字段,如下所述

attr_accessible :addresses_attributes
于 2016-04-01T10:18:54.613 回答