[Rail3] How to construct full-text search for habtm associations

hi all, i’m new to this group and currently using Rails 3.0.3 and meta_where 0.9.10.

i’m considering how to make a full-text searching feature to my project,

and my models, for example, should be defined like below:

class Group < ActiveRecord::Base

has_and_belongs_to_many :users

:title (string)


class Comment < ActiveRecord::Base

has_and_belongs_to_many :users

:message (string)


class User < ActiveRecord::Base

has_and_belongs_to_many :comments

has_and_belongs_to_many :groups

:name (string)


and db/seeds.rb is:

u1 = User.create :name => “user1”

u1.groups << Group.create(:title => “Group1”)

u1.comments << Comment.create(:message => “hi user2”)

u2 = User.create :name => “user2”

u2.groups << Group.create(:title => “Group2”)

u2.comments << Comment.create(:message => “hi user1”)

then SearchController#search will receive a [space] separated query,

and it should finds a collection of users that matched query joining groups and comments.

it may use User.search scope.

but i’ve confused, how do i write search algorism using ActiveRecord::Relation on habtm?

forced to hard code complex (or bothersome) SQL queries in the Rails code?

User.search(“user1”) == [u1, u2] is just a my expectation.

and i want to know how to construct `OR’ method-chain of ActiveRecord::Relation.

(User.where(“name = ?”, “user%”) | User.where(“name = ?”, “%1”)).class == Array, isn’t it?

my questions are above-mentioned, and please forgive me about faults of grammar.

any ideas?