无法在rails 3上显示哈希值

时间:2011-07-16 04:30:17

标签: ruby ruby-on-rails-3 hash

如何在页面上显示Hash的值

我的用户模型类中有一个哈希

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

我为每个用户存储密钥。 因此,当用户阅读他们的信息时,我想显示关于该键的相应值 所以我这样做:

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

但我看不到任何显示。

如果我执行以下操作,我会看到正确的键显示

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

那么,以编程方式将哈希值显示在页面上的正确方法是什么?

感谢。

3 个答案:

答案 0 :(得分:3)

性别字段是字符串还是整数?如果它是整数,则需要将哈希值更改为:

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

答案 1 :(得分:1)

请注意,这不是特别好的风格。您应该在User.rb

中编写方法
GENDERS = {1 => 'Male', 2 => 'Female', 3 => 'Secret'}

def gender_name
  GENDERS[gender]
end

然后在您的视图中调用:

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

这样你就不会在视图中公开你的大部分模型并保持透明。如果需要,它还允许您稍后修改显示,而无需更改视图。

答案 2 :(得分:0)

使用与持续性别相对应的模型访问者