У меня есть запрос в моем контроллере, который работает нормально, но я хотел бы сделать это. Когда я пытаюсь сделать это, я получаю метод not found error. Вот подробности ...
class Post
has_ancestry # part of a tree of posts, managed with the Ancestry gem
attr_accessible :body, :user_id, :published
end
В posts_controller.rb
мне нужно получить набор опубликованных записей о братьях и сестрах, без самой записи @post (которую Ancestry включает в результаты 'sibling'). Этот код отлично работает:
def show
@post = Post.find(params[:id])
@published_sibs = @post.siblings.where("id <> :id", :id => @post.id).where("published = :published", :published => true)
end
Я пытаюсь переместить этот запрос в область действия в моем файле Post.rb
, например:
class Post
has_ancestry # part of a tree of posts, managed withthe Ancestry gem
attr_accessible :body, :user_id, :published
scope :published_sibs, self.siblings.where("id <> :id", :id => self.id).where("published = :published", :published => true)
end
Когда я пытаюсь загрузить Rails, я получаю:
... active_record/base.rb:1088:in `method_missing': undefined method `siblings' for #<Class:0x007fc3d4e33470> (NoMethodError)
Почему родственные отношения драгоценного камня Ancestor доступны в моем контроллере, а не в моей модели? Как я могу перевести этот запрос в область?