Rails 5-是否可以将if语句转换为控制器逻辑?

时间:2019-10-29 13:30:37

标签: ruby-on-rails ruby-on-rails-5

我在循环中有一个if语句,该语句仅显示来自用户关注者的帖子:

install.packages("sparklyr")

这是我对该循环的控制器代码:

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

是否可以将if语句放入我的控制器代码中?

1 个答案:

答案 0 :(得分:4)

  

是否可以将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 %>