Ruby on Rails: пользовательский геттер или пользовательский помощник - PullRequest
3 голосов
/ 30 июня 2011

Я хочу отобразить изображение аватара по умолчанию, если кто-то не добавил фотографию. Я предполагаю, что мне нужно либо сделать собственный метод получения в модели или помощник.

Если бы я сделал геттер, он бы выглядел примерно так:

def avatar_url
  "default_url" unless self.avatar
end

Ответы [ 2 ]

6 голосов
/ 30 июня 2011

Используйте метод read_attribute для обнаружения присутствия.

def avatar
  read_attribute("avatar") || default_avatar
end
0 голосов
/ 30 июня 2011

Другое возможное решение - установить значение по умолчанию на уровне базы данных с помощью миграции. Таким образом, вам не нужно делать ничего особенного для ситуации по умолчанию.

Миграция может выглядеть примерно так:

change_table :users do |t|
  t.string :avatar, :default => 'default_url'
end

От: http://guides.rubyonrails.org/migrations.html

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