如何使用基于嵌套属性的作用域来过滤Rails 4中的帖子?

时间:2016-07-26 21:29:59

标签: ruby-on-rails

我需要过滤索引页面上显示的帖子。我最初通过在视图中使用此条件来过滤它们:

<span th:with="days=${T(java.util.concurrent.TimeUnit).DAYS}, millis=${T(java.util.concurrent.TimeUnit).MILLISECONDS}" th:text="${days.convert(#dates.createNow().getTime() - feed.dateCreated.getTime(), millis)}" />

但是因为我添加了will_paginate,所以我得到了空白页面,因为它甚至包括我不想显示的帖子。如何使用范围过滤掉控制器中的帖子?

这些是我的模特:

if current_user.courses.any? {|h| h[:name] == post.course.name}

class Post < ActiveRecord::Base
  belongs_to :user
  belongs_to :course
  has_many :comments
end

和我的控制器代码

class Course < ActiveRecord::Base
  belongs_to :user
  has_many :posts
  belongs_to :major
end

1 个答案:

答案 0 :(得分:0)

如果您的过滤器包含多个courses names

def index 
     @posts = Post.joins(:course).where('courses.name in (?)',current_user.courses.map(&:name)).paginate(:page => params[:page], :per_page => 1)  
end