如何在Ruby on Rails中的show.html中为选定值显示文本而不是id?

时间:2010-10-06 13:27:21

标签: ruby-on-rails scaffolding

我使用select_tag在表单中创建了一个下拉框:

<%= select_tag(:warning, options_for_select([['None', 1], ['Medium', 2], ['High', 3]], 1)) %>

现在我想显示他们选择的值的相应文本而不是show.html.erb中的id,因此它显示'None'而不是1.我是新手,并且不能很好地理解它出。现在我只使用默认的脚手架代码并显示id:

<%= @standing.warning %>

...谢谢

1 个答案:

答案 0 :(得分:1)

您是否尝试反转选项以使['None', 1]变为[1, 'None']

更新您的常规模型:

class Standing
  @@warning_labels = { 1 => 'None', 2 => 'Medium', 3 => 'High' }

  def warning_str
    @@warning_labels[@warning]
  end
end

在show.rb中:

<%= @standing.warning_str %>

standing_helpers.rb

def warning_str(warning_id)
  warning_labels = { 1 => 'None', 2 => 'Medium', 3 => 'High' }
  warning_labels[warning_id];
end

在show.rb中:

<%= warning_str(@standing.warning) %>