在一个字段Rails中存储数组

时间:2013-11-25 11:47:28

标签: ruby-on-rails

有一些问题:我正在设计数据库,并且有#34;餐馆"表;这个表有字段" food_type"。该字段可以存储1或2,3,...值,其描述该餐馆中的食物类型(西班牙语,法语,意大利语等)。如果我理解正确,我应该在这个字段中存储代码数组(0 =>法语,1 =>意大利语,......),我需要有表" food_types"用' id',' name'。但还有另一个问题:我的一些观点应该显示所有的食物类型,我的应用程序使用国际化,因此我应该在yml文件中存储类型的名称,以便在Rails中使用I18n,我不应该使用' name& #39;专栏" food_types"而不是它。请告诉我,我的问题的最佳解决方案是什么?谢谢。

1 个答案:

答案 0 :(得分:1)

也许您应该引入has_many :through关联,如下所示:

#app/models/restaurant.rb
has_many :restaurant_food_types
has_many :food_types, :through => :restaurant_food_types

#app/models/restaurant_food_type.rb
Class RestaurantFoodType < ActiveRecord::Base
    belongs_to :restaurant
    belongs_to :food_type
end

#app/models/food_type.rb
has_many :restaurant_food_types
has_many :restaurants, :through => :restaurant_food_types

restaurant_food_type联接模型的数据库可能如下所示:

restaurant_food_types
  id 
  restaurant_id
  food_type_id