Rails 5 - Есть ли способ преобразования оператора if в логику контроллера? - PullRequest
1 голос
/ 29 октября 2019

У меня есть оператор if в цикле, который отображает только сообщения от подписчиков пользователей:

    <% @posts.each do |post| %>
        <% if post.user.following?(current_user) && current_user.following?(post.user) %>
            <%= post.body %>
        <% end %>
    <% end %>

И это код моего контроллера для этого цикла:

@posts = Post.where('created_at >= :one_day_ago', one_day_ago: Time.now - 24.hours).order("created_at DESC")

Есть лиспособ получить оператор if в код моего контроллера?

1 Ответ

4 голосов
/ 29 октября 2019

Есть ли способ вставить оператор if в код моего контроллера?

Конечно, это может выглядеть так:

@posts = Post.where('created_at >= :one_day_ago', one_day_ago: Time.now - 24.hours).order("created_at DESC")
@posts = @posts.filter do |post|
  post.user.following?(current_user) && current_user.following?(post.user)
end

Тогда, на ваш взглядвы просто отфильтровываете отфильтрованные сообщения:

<% @posts.each do |post| %>
  <%= post.body %>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...