В Rails, если у меня есть следующая настройка:
class Post < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :post
def self.approved
where(approved: true)
end
end
Тогда я могу сделать что-то вроде этого:
post = Post.find(100)
comments = post.comments.approved
чтобы быстро получить все одобренные комментарии для данного Post
.
Как я могу сделать что-то подобное в Ecto?
defmodule MyApp.Post do
use Ecto.Model
schema "posts" do
#columns omitted
has_many :comments, MyApp.Comment
end
end
defmodule MyApp.Comment do
use Ecto.Model
schema "comments" do
#columns omitted
belongs_to :post, MyApp.Post
end
end
У меня есть Post
с comments
pre-loaded:
post = MyApp.Post
|> MyApp.Repo.get(100)
|> MyApp.Repo.preload(:comments)
Я даже не уверен, с чего начать с области approved
в MyApp.Comment
.