Rails 3 scope неопределенный метод `includes_values` - PullRequest
1 голос
/ 30 сентября 2011

Моя модель имеет эту область действия

  scope :supported, order("name").collect {|m| m.name}.join(", ") 

и выдает ошибку

NoMethodError: undefined method `includes_values' for "blah, blahblah":String

Я думаю, что это потому, что я пытаюсь вернуть строку как объект ActiveRecord, мысли о том, как это исправить?На самом деле у меня есть этот код, уже работающий в представлении, но я подумал, что он может быть лучше в модели, а может и нет?

РЕДАКТИРОВАТЬ Перемещение в метод класса, не относящийся к области видимости, работает

def supported
  order("name").collect {|m| m.name}.join(", ") 
end

Вот связанный вопрос , который лучше проясняет разницу между scope и self методами класса.

1 Ответ

2 голосов
/ 30 сентября 2011

что вы пытаетесь сделать точно ?, если вы хотите вернуть строку, используйте методы класса.если вы хотите определить цепочку ARel с возможностью цепочки, то я всегда рекомендую использовать методы класса, но некоторые предпочитают «явный» способ через scope.

def self.supported
  order('name').to_a * ", "
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...