Невозможно отобразить хэш на рельсах 3 - PullRequest
1 голос
/ 16 июля 2011

Как вывести значение из Hash на страницу

У меня есть хэш в классе модели User

GENDERS = {'1' => 'Male', '2' => 'Female', '3' => 'Secret'}

И я храню ключ для каждого пользователя. Поэтому, когда пользователь читает свою информацию, я хочу отобразить соответствующее значение относительно ключа Итак, я делаю так:

<td><%= User::GENDERS[@user.gender] %></td>

Но я ничего не вижу.

если я сделаю следующее, я увижу правый ключевой дисплей

<td><%= @user.gender %></td>

Итак, как правильно отображать значение из хеша на странице программно?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 16 июля 2011

Является ли поле пола строкой или целым числом? Если это целое число, вам нужно изменить хеш на:

GENDERS = {1 => 'Male', 2 => 'Female', 3 => 'Secret'}
1 голос
/ 16 июля 2011

Просто отметьте, что это не очень хороший стиль. Вам лучше написать метод в пределах User.rb:

GENDERS = {1 => 'Male', 2 => 'Female', 3 => 'Secret'}

def gender_name
  GENDERS[gender]
end

, а затем, по вашему мнению, позвоните:

<td><%= @user.gender_name %></td>

Таким образом, вы не будете выставлять так много своей модели в представлениях и будете держать все прозрачным. Это также позволит вам изменить дисплей позже, если вы захотите, без необходимости менять вид.

0 голосов
/ 16 июля 2011

использовать аксессор модели, соответствующий постоянному полу

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