Как я могу получить атрибут из объекта модели динамически? У меня есть атрибут объекта User в виде строки:
u = User.find(1)
Могу ли я сделать что-то вроде u.get("user_id")
u.get("user_id")
Вы можете попробовать использовать экземпляр модели ActiveRecord как хеш.
u = User.find(1) name = u[:name] field = "first_name" first_name = u[field]
Еще один подход:
attr = :first_name @user.read_attribute attr
Попробуйте это
user = User.find(1)
тогда что-то вроде этого должно делать то, что вам нужно
user.send('field_name')
u = User.find(1) attr = "first_name" u.send(attr)
Не уверен, что я полностью понимаю ваши вопросы.Попробуйте что-то вроде:
User.find(1).name
, если вы хотите получить только те атрибуты БД, которые вы можете сделать:
User.find(1,:select => :name)