ruby-on-rails - 如何在表单中显示可枚举属性的选项?

标签 ruby-on-rails enums erb

如果我有一个模型,其中一个属性只能设置为多个预定义值,如下所示:

class Painting < ActiveRecord::Base
  SALE_STATUS = ["for sale", "sold"]
  validates_inclusion_of :status, :in => SALE_STATUS
end

有没有办法编写 ERb/HTML 表单,以便 status 的输入字段仅显示每个可用选项的单选按钮或复选框之类的内容?

<%= form_for @painting do |painting| %>
  <%= painting.check_box :status # ... don't know how to implement!
<% end %>

感谢您的宝贵时间。

最佳答案

我认为你可以做这样的事情:

<%= form_for @painting do |painting| %>
  <% Painting::SALE_STATUS.each do |sale_status| %>
    <%= painting.check_box :status, sale_status %>
  <% end %>
<% end %>

但是此代码不允许用户选择任何销售状态。如果您想允许状态为空值,请将其添加到您的模型中:

validates_inclusion_of :status, :in => SALE_STATUS, :allow_nil => true

如果没有,请改用单选按钮:

<%= form_for @painting do |painting| %>
  <% Painting::SALE_STATUS.each do |sale_status| %>
    <%= painting.radio_button :status, sale_status %>
  <% end %>
<% end %>

关于ruby-on-rails - 如何在表单中显示可枚举属性的选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14345008/

相关文章:

c++ - cpp 中枚举的内存要求是多少?

ruby-on-rails - 如何在 erb 模板中显示应用程序数据?

ruby-on-rails - 片段缓存和用户头像/图像

javascript - 如何为 CoffeeScript 搜索添加时间延迟

c++ - 将枚举传递给引用 int 的函数

ruby-on-rails - 在 ERB 中同时循环遍历 2 个数组

html - Ruby on Rails redirect_to 方法

ruby-on-rails - 在 Rails 中制作一个基本的类似 SO 的 WYSIWYG 编辑器

ruby-on-rails - Heroku 中的 unicorn ?为什么不在开发中?

enums - 在 ORMLite 中保留自定义枚举值