0

我正在使用 Active Admin 创建一个网站,以允许所有者将来控制菜单。如果我们正在处理午餐菜单,我将模型构建为具有如下所示的多个项目的部分。

class Section < ActiveRecord::Base
  attr_accessible :id, :name
  has_many :items
end

class Item < ActiveRecord::Base
  attr_accessible :desc, :id, :name, :price
  belongs_to :section
end

在 Active Admin 中创建“部分”工作正常,但在尝试创建“项目”时收到错误消息。

错误:

NoMethodError in Admin/items#new
undefined method `section_id' for #<Item:0xb5460b44>

谢谢。

4

1 回答 1

2

为灵活起见,您不应考虑将类别创建为模型,而仅将其创建为属性。一旦你创建了所有的类(例如,LunchSection、DinnerSection、WineSection),没有程序员的参与就不可能创建一个新的类。

我要做的是创建以下类:

  1. 菜单 - 将菜单表示为单独的一张纸(因此可能有葡萄酒菜单和菜肴菜单)。菜单的“类型”应仅由名称指定。
  2. Group 或 Category 是同一类型的不同菜肴的容器,如午餐、甜点、葡萄酒……此外,只有一个Group类,每个组都有一个实例
  3. MenuItem(或简称项目)是菜单的任何元素,属于组或菜单(这是一个设计决定 - 项目不应同时属于菜单和组,因为如果您想获取菜单中的所有项目,这会导致冲突)
于 2013-06-23T18:38:34.333 回答