使用best_in_place和activeadmin在下拉列表中枚举

时间:2017-03-01 03:26:35

标签: ruby-on-rails ruby enums activeadmin best-in-place

我正在使用best_in_place和主动管理员。如果枚举下拉,我似乎可以让它工作。

使用的枚举是:

enum day: [MONDAY.to_s, TUESDAY.to_s, WEDNESDAY.to_s, THURSDAY.to_s, FRIDAY.to_s, SATURDAY.to_s, SUNDAY.to_s]

每个常数都像:

MONDAY = "monday"

我试图在列上使用best_in_place:

column :day do |d|
  best_in_place d, :day, as: :select, url: [:admin,d], collection: Order.days.enum_for(:each_with_index).collect{|k,index| [k[0], index]}
end

这显示0,1,2的列表,但按预期工作。

我尝试过各种变体:

Order.days
Order.days.keys

Order.days.keys列出了日期。但它没有拿起已经设定的那个。例如。星期二已经设定过,它显示为空。并没有设置它。

我希望下拉列表能够使用日期名称列表。有帮助吗?

1 个答案:

答案 0 :(得分:0)

我没有使用您的确切设置,但执行以下操作有助于使用best_in_place在项目中允许枚举驱动的选择集合:

best_in_place host, :platform, as: :select, collection: Host.platforms.keys.map { |w| [w, w] }

这会将选择值和下拉项设置为相同。或者如果你想让它更具可读性,你可以这样做:

Host.platforms.keys.map { |w| [w, w.humanize] }

希望能让你到达某个地方!