У меня есть две сущности Posts
и Comments
, связанные следующим образом
class Post < ActiveRecord::Base
attr_accessible :title, :msg
has_many :comments
end
class Comment < ActiveRecord::Base
attr_accessible :msg
belongs_to :post
scope :search, lambda { |msg| where(arel_table[:msg].matches('%#{msg}%'))}
end
scope :search
теперь выполняет поиск только для comments(msg)
, я хочу написать другую область для поиска posts(msg)
в comments
.
Как написать это?
0
user1094976
6 Фев 2013 в 13:01
1 ответ
Лучший ответ
Попробуйте следующее (я предпочитаю методы класса, чем области с лямбдами, потому что они выглядят чище и их легче читать)
# comment.rb
def self.search(msg)
where(arel_table[:msg].matches('%#{msg}%'))
end
def self.post_search(msg)
joins(:post).where(Post.arel_table[:msg].matches("%#{msg}%"))
end
0
jvnill
6 Фев 2013 в 13:18
Похожие вопросы
Новые вопросы
ruby-on-rails
Ruby on Rails - это полнофункциональная платформа веб-приложений с открытым исходным кодом, написанная на Ruby. Он следует популярной модели фреймворка MVC и известен своим подходом «соглашение поверх конфигурации» при разработке приложений.