Rails - collection_select - 填充模型中列出的值

Rails - collection_select - populate with the values listed in a model

我有一个这样定义的模型:

class Order < ActiveRecord::Base
  belongs_to :user

  TYPES = %w[t_01 t_02 t_03]
  validates :order_type, inclusion: { in: TYPES }
end

我正在尝试在视图中创建一个下拉菜单,该菜单将由 TYPES 中可用的值填充。

下面显示的当然不是正确的,因为它使用属于已记录在数据库中的订单的类型填充下拉菜单:

<div class="field">
  <%= f.label :order_type %><br>
  <%= f.collection_select :order_type, Order.all, :order_type, :order_type %>
</div>

有人可以告诉我如何解决这个问题吗?先感谢您。

#model

 def self.types
  TYPES
 end


 #view
 <%= f.collection_select :order_type, Order.types, :to_s, :to_s, {include_blank: false}, {:multiple => false} %>

您也可以将其用作

<%= f.collection_select :order_type, Order::TYPES , :to_s, :to_s, {include_blank: false}%>