我有以下型号:
class Post < ActiveRecord::Base
has_and_belongs_to_many :countries
end
class User < ActiveRecord::Base
has_many :entitlements
has_many :countries, :through => :entitlements
end
帖子索引页面上的帖子必须至少有一个与用户所在国家/地区之一相同的国家/地区。
我在我的模型和冗长的控制器代码中尝试了各种范围,但我不知道如何检查应该是一个简单的关系:Post.countries 中的至少一个项目是否存在于 User.countries 中。
任何帮助都得到了很大的帮助。
更新:
好的,所以我的控制器中有以下内容:
def index
@user = current_user
@user.countries.each do |user_country|
@user_country_posts += Country.find(user_country.id).posts
end
@posts = @user_country_posts
end
这是遍历 user.countries 并找到这些国家的每个帖子。但是当我运行它时,我得到:
NoMethodError: undefined method `+' for nil:NilClass
任何想法我做错了什么?