如何启用嵌套搜索太阳黑子solr?

时间:2012-12-15 05:34:04

标签: ruby-on-rails ruby-on-rails-3 sunspot

我有两个模型:UserUser_profile

在User.rb中,用户has_one :user_profile

在User_profile.rb中,User_profile belongs_to :user

然后我有users_controller及其index.html.erb。 所以我将其添加到我的用户模型中以便通过嵌套列启用搜索,但是当我尝试重新索引时它显示错误。我该如何解决这个问题?

  

的未定义方法`user_profiles'

模型/ user.rb

....
  searchable do 
    text :user_profile_nickname do
      user_profiles.map { |user_profile| user_profile.nickname }
    end
  end
....

1 个答案:

答案 0 :(得分:4)

您已在user.rb文件中提供了用户has_one :user_profile。所以它不能是对象的集合,而是它是一个成员对象。因此,您无法在用户模型中致电user_profiles.map { |user_profile| user_profile.nickname }

如果您想按以下方式拨打电话:

searchable do 
  text :user_profile_nickname do
    user_profile.nickname
  end
end

以上内容肯定会有用。如果不工作,请告诉我。