как получить доступ к attr_accessor в модели rails, используя метод `attribute_names` - PullRequest
2 голосов
/ 16 февраля 2012

Мне нужен доступ к именам атрибутов модели, но она не показывает их все.

У меня есть Пользовательская модель, и я добавил в нее attr_accessor :color (поскольку я не хочу сохранять это в своей базе данных в виде столбца). Но если я пытаюсь получить доступ к именам атрибутов, используя User.first.attribute_names, он показывает только столбцы базы данных, он не показывает атрибут 'color', так как мне получить доступ ко всем атрибутам? Есть ли методы, которые перечисляют attr_accessor в качестве атрибутов?

Ответы [ 3 ]

2 голосов
/ 16 февраля 2012
User.accessible_attributes #will return array of accessible attributes 
1 голос
/ 16 февраля 2012

Прежде всего, если вы не знаете разницы ч / б attr_acessabe и attr_accessor посмотрите на

Как перебирать атрибуты ActiveRecord, включая методы attr_accessor

вы можетедобавьте attr_accessor, если у вас нет атрибута для сохранения в базе данных, затем добавьте этот att_accessor в attr_accessable:)

attr_accessor :color
attr_accessible :color

сейчас

User.accessible_attributes # => ["color"], but beware that you have lost all other attribute you need to add those too if you want to enable mass assignment. 

    attr_accessible :color,:first_name,:blah,:blah...
0 голосов
/ 16 февраля 2012

Вы пробовали #methods, то есть User.first.methods или, возможно, User.accessible_attributes больше соответствует тому, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...