我的Phoenix应用程序中有一个Post模型/视图/控制器/模板,具有以下模式:
schema "posts" do
field :title, :string
field :content, :string
field :published, :boolean
belongs_to :user, MyApp.User
timestamps
end
目前在web/controllers/post_controller.ex
我得到了这个:
def index(conn, _params, user) do
projects = Repo.all(MyApp.Project)
render(conn, "index.html", projects: projects)
end
我的templates/post/index.html.eex
文件列出了所有帖子;但是,我想做的只是显示已发布的帖子(发布的帖子等于true)。
我知道我需要在索引操作中更改此行 - 但我不确定要将其更改为什么。 Phoenix / Elixir的最佳做法是什么?
最好的方法是什么?
答案 0 :(得分:2)
这可以通过修改web/controllers/post_controller.ex
来完成:
def index(conn, _params, user) do
projects = Repo.all(from u in Project, where: u.approved == true)
render(conn, "index.html", projects: projects)
end
我不确定这是否是实现结果的正确方法/最佳方式;但它确实有效。如果有更好的方法,请发表评论并告诉我或发布其他答案。