2
class User < ActiveRecord::Base 
    has_many :followings, :as => :followable, :dependent => :destroy, :class_name => 'Follow' 
    has_many :follows, :as => :follower, :dependent => :destroy 

    define_index do 
    has follows.followable(:id), :as => :followable_id 
    has followings.follower(:id), :as => :follower_id 
    has follows.followable(:type), :as => :followable_type 
    has followings.follower(:type), :as => :follower_type 
    end 
end 
  1. 問題:I不能通過類型(總是空數組)搜索。一個錯誤?我希望所有用戶的追隨者都是'AAA'類型。導軌+思維-斯芬克斯多態關聯

    User.search',:用=> {:follower_type => 'AAA'}

  2. 的問題:爲什麼我要逆我聯想到得到正確的結果(索引定義): 如下。:可追蹤(:id),:as =>:followable_id 而不是 followingings.followable(:id),:as =>:followable_id 我想獲得id = 1的用戶的追隨者列表。

    User.search:with => {:followable_id => 1}#id爲1的用戶的關注者列表

Thx!

回答

2

關於第一個問題 - 字符串過濾器在Sphinx中不起作用。這將在未來發生變化(Sphinx 1.10-beta,一旦思考獅身人面像支持新功能),但不知道什麼時候會發生(我很樂意說,但不能承諾任何東西)。

雖然有a workaround可用,但請記住您正在處理字符串數組,因此這是一個額外的複雜程度。

至於第二個問題,努力讓我的頭在數據庫看起來像什麼(名字混亂,但我現在缺乏重點),所以我現在就把它留在這裏。

+0

@pat Thx for your answare!對於數據庫請看這個插件:https://github.com/xpepermint/acts_as_followable。模型從那裏複製(對於第二個問題)。 – xpepermint 2010-11-27 11:04:55