2016-09-23 9 views

答えて

3

Ectoはuse Ecto.Schemaを呼び出し、次にschema do ... endを呼び出すモジュールで__schema__関数を定義します。 :sourceを渡すと、テーブル名が返されます。

iex(1)> %MyApp.Post{} 
%MyApp.Post{__meta__: #Ecto.Schema.Metadata<:built, "posts">, 
comments: #Ecto.Association.NotLoaded<association :comments is not loaded>, 
id: nil, inserted_at: nil, title: nil, updated_at: nil} 
iex(2)> %MyApp.Post{}.__struct__ 
MyApp.Post 
iex(3)> %MyApp.Post{}.__struct__.__schema__(:source) 
"posts" 

受け入れ__schema__様々な議論がhereに記載されています。

+0

素晴らしい!つまり、最終的にテーブル名はスキーマ名に由来します。 – dotslash

+1

はい、schemaの最初の引数は「ソース」またはテーブル名です。 – Dogbert

関連する問題