仅在帖子索引视图中显示已发布的帖子

时间:2016-04-07 19:32:37

标签: elixir phoenix-framework ecto

我的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的最佳做法是什么?

最好的方法是什么?

1 个答案:

答案 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

我不确定这是否是实现结果的正确方法/最佳方式;但它确实有效。如果有更好的方法,请发表评论并告诉我或发布其他答案。