Active Admin has_many具有设定数量的嵌套关系

str*_*ren 5 ruby-on-rails activeadmin

我正在使用Active Admin,我在两个模型之间有一对多的关系:

class WeeklyMenu < ActiveRecord::Base
  has_many :menu_items
  attr_accessible :menu_items
  accepts_nested_attributes_for :menu_items
end
Run Code Online (Sandbox Code Playgroud)

在WeeklyMenu的管理页面中,我想显示五个menu_items.这就是我的管理页面目前的样子:

ActiveAdmin.register WeeklyMenu do
  form do |f|
    f.inputs "Details" do
      f.input :title
      f.input :week
    end

    f.has_many :menu_items do |menu_item|
      menu_item.input :title
    end

    f.buttons
  end
end
Run Code Online (Sandbox Code Playgroud)

这给了我一个非常好的界面来添加更多的menu_items,但我希望用户有五个 - 不多也不少.我该怎么做呢?

小智 5

更换

f.has_many :menu_items do |menu_item|
  menu_item.input :title
end
Run Code Online (Sandbox Code Playgroud)

f.inputs "Menu items" do
  5.times do
    f.object.menu_items.build
  end
  f.fields_for :menu_items do |m|
    m.inputs do
      m.input :title
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

可能不是最好的解决方案,但这应该有效......