Hinzufügen created_at DESC Funktionalität in Rails
Habe ich eine app, mit der post-und Kommentar-Modelle. In meiner index action/view, ich bin der Iteration durch die post und zeigt Sie aus den meisten vor kurzem erstellt am ältesten. Meine Kommentare sind geschachtelt innerhalb meiner Beiträge, so in meinem post zeigen, Aktion/Ansicht möchte ich für die Iteration, obwohl die Kommentare und Sie zu zeigen, aus den meisten vor kurzem erstellt am ältesten. Ich kann nur scheinen, um diese zu arbeiten, wenn ich eine Methode in meinem post.rb
- Datei. Ich habe diese:
post.rb:
def newest_comments
self.comments.order("created_at DESC")
end
In meinem Beitrag anzeigen, ich kann Durchlaufen und die Kommentare posten und es funktioniert Super:
<% @post.newest_comments.each do |comment|
<% end %>
ABER ich möchte, um diese Funktionalität in der controller-Schicht, aber ich kann nicht herausfinden, wie. Dies ist, was ich in der show-action in meinen Beiträgen controller:
def index
@posts = Post.all.order("created_at DESC")
end
def show
@comment = Comment.new
@comments = Comment.all.order("created_at DESC")
end
Und jetzt meine aktuelle post-Karte anzeigen:
<% @post.comments.each do |comment| %>
<% end %>
Den @post
var ist es, weil meiner vor der Aktion. Meine Frage ist also, warum ich keinen Zugriff auf diese ivar in meinem Beitrag anzeigen, indem Sie einfach den Aufruf in meiner show view?
Richtig, das ist ein weiterer Grund, ich möchte das Thema aus meiner Modell-Ebene.
InformationsquelleAutor user2045764 | 2013-12-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit der updates auf Schienen können Sie verhindern, indem Sie die
created_at DESC
SQL-syntax mit so etwas wie dies:@comments = @post.comments.order(created_at: :desc)
InformationsquelleAutor Bijan
Können Sie einen Bereich
dann benutzen Sie es wie
Sowie
@comments
wird bestelltscope: newest_first, -> { order(created_at: :desc) }
InformationsquelleAutor joseramonc
Recht jetzt Ihren code von show-action ist wie Rückkehr alle Kommentare, anstatt Kommentare zum Thema zu posten. Zugriff auf @post in show view sind, müssen Sie aktualisieren Sie Ihre show-action wie diese.
So, in dieser Art und Weise können Sie zugreifen, @post und @Kommentare in Karte anzeigen.
Und nun update-post anzeigen, um zu zeigen Kommentare:
Auch für Sie können Benutzer @post-Objekt in der Ansicht als auch, wenn erforderlich.
@Kommentare für neuer Kommentar.
Können Sie sehen, dieses Post-Comment-app auf Schienen-Führungen http://guides.rubyonrails.org/getting_started.html#showing-posts
Weitere hilfreiche links : http://www.reinteractive.net/posts/32-ruby-on-rails-3-2-blog-in-15-minutes-step-by-step
InformationsquelleAutor sunil
definieren Sie Ihre Bestellung im post-model:
Sie können auch versuchen, has_scope Juwel für bedingte Sortierung / Filterung
InformationsquelleAutor airy
verwenden Sie diese in Ihrem Kommentar Modell für Standard festlegen, um:
InformationsquelleAutor Zakaria