如果我有一个模型,其中一个属性只能设置为多个预定义值,如下所示:
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/