关于ecto关系的混淆

时间:2016-11-18 06:29:39

标签: elixir ecto

我有以下架构:

  schema "countries" do

    belongs_to :lang, LanguageCode, foreign_key: :code
    field :text, :string

    timestamps

  end

  schema "languages_code" do

    has_one :code, Country, foreign_key: :lang
    field :text, :string

    timestamps
  end

我的问题是,当我要创建属于LanguageCode的第三个表时:

schema "table3" do

  belongs_to :coun, CountryCode, foreign_key: :alpha2
  field :text, :string

  timestamps

end

如何修改languages_code架构?

1 个答案:

答案 0 :(得分:1)

除非我弄错了,你问的是如何在LanguagesCode模型上表示belongs_to关系?

如果是这样,那么根据语言代码是否可以包含一个或多个属于它的table3行,您可以这样做:

 schema "languages_code" do

    has_one :code, Country, foreign_key: :lang

    #For has_one
    has_one :code, Table3ModuleName, foreign_key: :alpha2

    #For has_many
    has_many :code, Table3ModuleName, foreign_key: :alpha2 

    field :text, :string

    timestamps
  end

您当然会将Table3ModuleName替换为包含table3表架构定义的模块的实际名称。