У меня есть приложение с комментариями и комментариями. В моем действии/представлении индекса я повторяю сообщение и отображаю его из самого последнего созданного на старое, созданного в. Мои комментарии вложены в мои сообщения, поэтому в моем представлении/представлении показать, я хочу итерации, хотя комментарии и получить их, чтобы показать из недавно созданных на старейших, созданных на. Кажется, я могу заставить это работать, если я создам метод в моем файле post.rb
. У меня есть это:Добавление функции created_at DESC в Rails
post.rb:
def newest_comments
self.comments.order("created_at DESC")
end
На мой пост шоу зрения, я могу перебирать оставлять комментарии и он прекрасно работает:
<% @post.newest_comments.each do |comment|
<% end %>
, но я хочу, чтобы установить это функциональность в слое контроллера, но я не могу понять, как это сделать. Это то, что я имею в шоу действия в мой контроллер сообщений:
def index
@posts = Post.all.order("created_at DESC")
end
def show
@comment = Comment.new
@comments = Comment.all.order("created_at DESC")
end
и теперь мой обновленный вид пост-шоу:
<% @post.comments.each do |comment| %>
<% end %>
@post
ВДП там из-за моего перед действием. Поэтому мой вопрос: почему у меня нет доступа к этому ivar в моем представлении после показа, просто называя это в моем представлении?
не связан с вашим вопросом, но это не очень хорошая практика для использования методов self в классе. – airy
Правильно, это еще одна причина, по которой я хочу переместить это из своего модельного слоя. – user2045764