2012-04-24 3 views
1

Я разрабатываю приложение, в котором авторизация является моделью. провайдер - поле модели. я definned attr_accessor для поля поставщикаПроблема с attr_accessor в рельсах

attr_accessor :provider 

Хотя его не требуется, по незнанию я определил его и столкнулся с проблемой, когда я пытался создать запись для модели

Authorization.create(:user_id => user.id, :uid => hash['uid'], :provider => 
hash['provider']) 

user_id в настоящее время assinged значение user.id (пользователь является переменной в моей функции), но провайдеру всегда присваивается значение null (hash ['provider'] содержит значение.

Когда я удаляю attr_accessor, все работает отлично, и моя проблема получена но почему это не сработало раньше? просто любопытно узнать, в чем проблема?

ответ

4

Я думаю, что вы, вероятно, имел в виду определить attr_accessible (при условии, что поставщик является поле в базе данных.)

attr_accessor является метод рубин создать атрибут (с переменной экземпляра, геттера и сеттера) на класс (или в контексте рельсов, виртуальный атрибут). Вы хотите создать его на модели, для чего предназначен attr_accessible.

Для получения более подробного объяснения см. http://www.ruby-forum.com/topic/95220.

Смежные вопросы