0

我想做一个烹饪网站,但不知道正确的是建立数据库。

我的模型是:RecipeIngredient

配方中的成分应该是自动完成字段。问题是用户可以在那里放置任何文本。(“黄瓜”或“黄瓜”),它将是不同的成分。

我想按成分和链接进行搜索。最好的方法是什么?

4

1 回答 1

4

一个食谱有很多项目,这些项目又保留了对成分、数量和度量类型的引用。所以你可以去:

rails generate model Recipe name:string description:text
rails generate model Item recipe:references ingredient:references amount:decimal measure:string 
rails generate model Ingredient name:string

然后添加到您的课程中:

class Recipe < ActiveRecord::Base
  has_many :items
  has_many :ingredients, :through => :items


  # this allows things like @recipes = Recipe.using("cucumber")
  scope :using, lambda do |text| 
    joins(:ingredients).where("ingredients.name LIKE ?", "%#{text}%")
  end
end

class Item < ActiveRecord::Base
  belongs_to :recipe
  belongs_to :ingredient

  VALID_MEASURES = %w[oz kg tbsp] # use for "select" tags in forms
  validates :measure, :inclusion => VALID_MEASURES
end

class Ingredient < ActiveRecord::Base
  belongs_to :item
end

从这里你开始构建你的视图,自动完成,无论你的想象力允许。

于 2012-09-28T14:50:53.987 回答