ich ein Beitrag Model/View/Controller/templates in meiner Phoenix-Anwendung mit dem folgenden Schema haben:Nur noch Beiträge in Post-Übersicht Veröffentlicht
schema "posts" do
field :title, :string
field :content, :string
field :published, :boolean
belongs_to :user, MyApp.User
timestamps
end
Derzeit in web/controllers/post_controller.ex
ich dies habe:
def index(conn, _params, user) do
projects = Repo.all(MyApp.Project)
render(conn, "index.html", projects: projects)
end
Meine templates/post/index.html.eex
Datei listet alle Beiträge auf; Ich möchte jedoch nur die Posts anzeigen, die veröffentlicht werden (Posts, bei denen published gleich true ist).
Ich weiß, dass ich diese Zeile in der Indexaktion ändern muss - aber ich bin mir nicht sicher, was ich ändern soll. Was ist die beste Vorgehensweise dafür in Phoenix/Elixir?
Was ist der beste Weg, dies zu tun?
Das ist so ziemlich für Ihren Fall. Ich kann mich an keinen besseren Weg erinnern. Aber ich habe einige Vorschläge: - Es ist gute Praxis, Modelle, die Sie häufig in einem Controller verwenden Alias-Modelle - Als Übung versuchen, einen Filter (wenn Sie zeigen, nur veröffentlicht, wenn falsch alle anzeigen) für Sie Index-Aktion. –
Ja, Filter wäre großartig. Sie könnten es auf 'Repo.all (Project.approved)' ' – JustMichael
kürzen kann einer von Ihnen ein Beispiel geben? wird als eine Antwort akzeptieren, wenn Sie das tun. Vielen Dank :) –