2

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

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

谢谢你的时间。

4

1 回答 1

2

我认为你可以这样做:

<%= 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 %>
于 2013-01-15T19:12:24.773 回答