Проблема с default_scope в Rails 3? NoMethodError - PullRequest
1 голос
/ 14 июля 2010

Я испытываю странную ошибку после добавления этого в мою Alternative -модель:

default_scope order(:number)

На первом обновлении страницы все отлично работает. При последующих обновлениях я получаю

NoMethodError in Pages#show 
undefined method `written?' for #<Alternative:0x10455c558>

Alternative наверняка имеет метод written?. Я управляю Пассажиром, поэтому после

touch tmp/restart.txt

страница снова работает. Для первого обновления. Но сообщение об ошибке возвращается при последующих обновлениях снова. Удаление default_scope решает проблему (но только после перезапуска другого сервера).

Редактировать: Ошибка также присутствует при запуске на WEBrick через rails server, поэтому он не подключен к Passenger.

Редактировать: written? - это метод экземпляра в Alternative. Ошибка также появляется при попытке доступа к методам, полученным через has_many, например:

has_many :restrictions

alternative.restrictions.empty? # => NoMethodError

Кто-нибудь еще испытывает проблемы с default_scope в Rails 3? Или есть решение? Спасибо!

Ответы [ 2 ]

1 голос
/ 14 июля 2010

У меня не было странных проблем с default_scope, но я обнаружил, что Passenger не перезагружал код должным образом в режиме разработки с текущей Rails 3 HEAD - что приводило к сбивающим с толку утверждениям, подобным тому, с которым вы столкнулись.

Работает ли это, если вы просто запускаете "сервер rails"?

0 голосов
/ 14 июля 2010
...