ruby-on-rails - 在 Ruby on Rails 中播种

标签 ruby-on-rails ruby database seed

我有几个深度嵌套的模型,我想为我的数据库做种。模型如下: 每个餐厅有很多菜单。每个菜单都有很多类别。每个类别都有很多餐点。目前,我的种子看起来像这样:

restaurant_seed = [
  {
    name: "KFC",
    address: "Sofia",
    description: "Fast food.",
    phone_number: "88888888"
  }
]

menu_seed = [
  {
    name: 'Spring menu.',
    active: true
  },
  }
    name: 'Winter menu.',
    active: false
  }
]

category_seed = [
  {
    name: "Dessert",
    available_all_day: false,
    age_restriction: false,
    category_avatar: File.open(File.join(Rails.root, "app/assets/images/desserts.jpg"))
  },
  {
    name: "Salad",
    available_all_day: true,
    age_restriction: false,
    category_avatar: File.open(File.join(Rails.root, "app/assets/images/salads.jpeg"))
  }
]

meal_seed = [
  {
    name: "Shopska salata",
    meal_avatar: File.open(File.join(Rails.root, "app/assets/images/shopska_salad.jpg"))
  },
  {
    name: "Shisha",
    meal_avatar: File.open(File.join(Rails.root, "app/assets/images/shisha.jpg"))
  }
]

但是,我不知道如何使用该信息实际为数据库播种。这个想法是每家餐厅都会有所有的菜单种子,每家餐厅的每份菜单都会有来自类别种子的每个类别等等。感谢您的任何建议!

最佳答案

写一个方法来遍历所有种子并创建相应的记录。

def setup_restaurants(restaurant_seed, menu_seed, category_seed, meal_seed)
  restaurant_seed.each do |r_seed|
    restaurant = Restaurant.create(r_seed)
    menu_seed.each do |m_seed|
      menu = restaurant.menus.create(m_seed)
      category_seed.each do |c_seed|
        category = menu.categories.create(c_seed)
        meal_seed.each do |mm_seed|
          category.meals.create(mm_seed)
        end
      end
    end
  end
end

关于ruby-on-rails - 在 Ruby on Rails 中播种,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37805645/

相关文章:

sql-server - 建模资源所有权的最佳方式

sql-server - 授予对 View 的读取访问权限,但不授予对其他数据库的基础表的读取访问权限

ruby-on-rails - 如何使 link_to 在新窗口中打开外部 URL?

ruby-on-rails - Rails 4.0 在另一个范围定义中取消 default_scope 的方法(with_exclusive_scope depreciated)

ruby-on-rails - Rails 3.2 ActionView::Template::Error javascript_include_tag

ruby - 检查字符串是否包含 Ruby 中的特定字符序列

linux - 克隆 PostgreSQL 数据库

ruby-on-rails - 在 respond_to block 中共享代码

ruby - 自定义 Hook /回调/宏方法

css - Rails 3.1 中的 CSS 样式有什么问题?