Скажите, что, например, в вашей БД есть таблица с именем posts
. posts
имеет следующие поля:
name
, encrypted_password
. И вам нужно следующую модель Rails:
class Post < ActiveRecord::Base
attr_accessor :password
attr_accessible :name, :password, :password_confirmation
end
Без attr_accessible
можно было бы установить encrypted_password
посредством массового присвоения. По сути, с помощью attr_accessible вы указываете, какие атрибуты могут быть установлены посредством массового назначения (в этом случае оставляя encrypted_password вне цикла.
attr_accessor
создает средства доступа в вашем классе для данного имени / символа. В основном то, что он делает для вас:
def password= param
@password = param
end
def password
@password
end
Я предполагаю, что в вашем случае attr password
используется в обратном вызове before_save / create. Делать что-то с password
и устанавливать encrypted_password
. Но я только догадываюсь здесь.
Надеюсь, это поможет!