我有一个使用枚举的模型:
class ScheduledPayment < ActiveRecord::Base
enum status: { pending: 0, received: 1 }
monetize :amount_cents
belongs_to :lease
scope :recent, -> { where(start_date: 30.days.ago..0.days.ago).order("start_date DESC") }
end
以及用于选择其中一种状态的表单:
<%= form_for [:admin, @scheduled_payment] do |form| %>
<div>
<%= form.label :status %>
<%= form.collection_select :status, ScheduledPayment.statuses, :last, :first %>
</div>
<%= form.submit %>
<% end %>
但是,这会创建一个包含pending
和received
的精选下拉列表。我该如何标出价值?
答案 0 :(得分:4)
解决了它:
<%= form_for [:admin, @scheduled_payment] do |form| %>
<div>
<%= form.label :status %>
<%= form.collection_select :status, ScheduledPayment.statuses.keys, :to_s, :titlecase %>
</div>
<%= form.submit "Update" %>
<% end %>
您无法使用哈希值。它会说值'1'
无效。您必须将其设置为字符串值。