ruby on rails -区别于attr_accessor和attr_accessible


attr_accessor :password, :password_confirmation and
attr_accessible :password, :password_confirmation 

谁能告诉我有什么不同

attr_accessor是ruby方法。它设置了getter和setter。然而,attr_accessible是一个rails方法,它允许在大量赋值中传递值。

例如

——

attr_accessor :password, :password_confirmation
u = User.new({ :password => 'XXX', :password_confirmation => 'XXX' })
---
u.password => nil
u.password_confirmation => nil

但是,在这种情况下,您将能够使用getter和setter值。

attr_accessor :password, :password_confirmation
u.password = 'XXX'
---
u.password => 'XXX'
另一方面,对于attr_accessible -
attr_accessible :password, :password_confirmation
User.new({ :password => 'XXX', :password_confirmation => 'XXX' })
---
u.password => 'XXX'
u.password_confirmation => 'XXX'

attr-accessor为指定的属性创建gettersetter方法

method.attribute (getter)

method.attribute = (set)

attr_accessible来自ActiveRecord::Base和"指定可以通过质量分配设置的模型属性的白列表。"

最新更新