問題
私はfilesテーブルを持っていますが、1 対 1 の関連付けを作成する他の多くのテーブルusersがavatarありpostsますphoto。
可能な解決策
考えられる解決策は、テーブルを作成users_filesしposts_filesて使用することhas_one :throughです。しかし、これは過剰に見えます。
理想的なソリューション
理想的な解決策は、このようなテーブルを定義することです
users
- avatar_id
posts
- photo_id
with:パラメータが含まれてhas_oneいるため、スキーマは次のようになります
schema "users" do
has_one :avatar, MyApp.FileDb, with: :avatar_id, foreign_key: :id #id is default
end
schema "posts" do
has_one :photo, MyApp.FileDb, with: :photo_id, foreign_key: :id
end
そうすれば、belongs_toonを定義する必要はありませんfiles。同様のメカニズムはすでにありますか?フェニックスでこれに対処する標準的な方法は何ですか?