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



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

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 %>

但是这段代码允许用户不选择任何Sale Status。如果您希望允许状态为空值,请将此添加到您的模型中:

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 %>

相关内容

  • 没有找到相关文章

最新更新