Rails 2.3, использующий named_scope другой модели или альтернативу - PullRequest
0 голосов
/ 15 июня 2010

Допустим, у меня есть две модели, такие как:

class Comment < ActiveRecord::Base
  belongs_to :user
  named_scope :about_x :conditions => "comments.text like '%x%')"
end

class User < ActiveRecord::Base
  has_many :comments
end

Я хотел бы использовать модели, чтобы можно было возвращать всех пользователей и все комментарии с текстом типа "% x%"

all_user_comments_about_x = User.comments.about_x

Как поступить?

Спасибо

Ответы [ 2 ]

1 голос
/ 15 июня 2010

Попробуйте подписку

class User < ActiveRecord::Base
  has_many :comments
  named_scope :about_x, :joins => :comments, :conditions => ["comments.text like '%x%'"]
end

, а затем

@comments = User.about_x
0 голосов
/ 15 июня 2010

Если я правильно понял, вам нужно

# all comments about x and the user who did it
@comments = Comment.about_x(:include => :user)

или

@user = User.first
# all @user's comments about x
@comments = @user.comments.about_x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...