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

发布于 2024-09-26 11:56:22 字数 336 浏览 2 评论 0原文

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

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

现在我想显示他们选择的值的相应文本,而不是我的 show.html.erb 中的 id,因此它显示“无”而不是 1。我是新的对此并不能完全弄清楚。现在我只是使用默认的脚手架代码并显示 id:

<%= @standing.warning %>

谢谢...

I created a drop down box in my form using select_tag:

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

Now I want to display the corresponding text for the value they select rather than the id in my show.html.erb, so it displays 'None' instead of 1. I am new to this and can't quite figure it out. Right now I am just using the default scaffold code and that displays the id:

<%= @standing.warning %>

Thanks...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淡淡の花香 2024-10-03 11:56:22

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

更新您的 Standing 模型:

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

  def warning_str
    @@warning_labels[@warning]
  end
end

在 show.rb 中:

<%= @standing.warning_str %>

在您的 stand_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) %>

Have you tried inverting the options so that ['None', 1] becomes [1, 'None']?

Update your Standing model:

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

  def warning_str
    @@warning_labels[@warning]
  end
end

In show.rb:

<%= @standing.warning_str %>

OR

In your standing_helpers.rb:

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

In show.rb:

<%= warning_str(@standing.warning) %>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文