Rails API:accepts_nested_attributes_for

accepts_nested_attributes_for(*attr_names) Link
定义了对具体属性的写接口。
支持的参数有:
:allow_destroy #允许删除参数,默认为关闭,若此参数为true,对于成员属性哈希表中以_destroy结尾属性,若赋值为true(例如为1,'1',true,'true'),将对此类属性进行删除。
:reject_if  #有条件的拒绝参数,允许你指定具体的Proc或方法的符号形式,来判断属性参数是否被接受。所有的属性参数被发送到Proc或方法中处理,返回true或false。若:reject_if未指定任何参数,除了以_destory后缀形式的参数其他所有属性参数都会被接受。若传入:all_blank来替代Proc,除以_destroy结尾的属性参数外,所有值为空的属性也将不会被接受。
:limit  #关联记录的个数限制参数,允许指定内嵌属性的最大关联记录个数。该参数也可以被指定为返回结果为数字的Proc或方法符号形式。若内联属性的关联记录个数超出限值,将会报NestedAttributes::TooManyRecords异常。若未指定该参数,个数将不受限制。注意,该参数只有在一对多关系中可用。
:update_only #更新限制参数,对于一对一的关联关系,该参数允许你指定,当记录已存在的情况下,嵌套属性将如何处理。通常情况下,已存在的记录将会被新的属性集合更新掉或被完全替代。默认情况下,该参数设为false,只要属性中有记录的:id值,已存在的记录将会被更新掉。否则,新纪录将会被实例化,并替换掉旧记录。然而,若该属性值为true,不管是否有:id属性,对于旧记录将总是进行更新。该参数对于集合属性将被忽略。
Examples:
# creates avatar_attributes=
accepts_nested_attributes_for :avatar, reject_if: proc { |attributes| attributes['name'].blank? }
# creates avatar_attributes=
accepts_nested_attributes_for :avatar, reject_if: :all_blank
# creates avatar_attributes= and posts_attributes=
accepts_nested_attributes_for :avatar, :posts, allow_destroy: true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值