1

これをモデルに追加した後、奇妙なバグが発生しましたAlternative:

default_scope order(:number)

最初のページ更新では、すべて正常に動作します。その後の更新で、私は得る

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

Alternative確実にwritten?方法があります。Passengerを実行しているので、

touch tmp/restart.txt

ページは再び機能します。初めてのリフレッシュに。しかし、その後の更新でエラー メッセージが再び表示されます。を削除default_scopeすると問題が解決します (ただし、別のサーバーの再起動後のみ)。

編集:このバグは、 を介して WEBrick で実行している場合にも存在するrails serverため、Passenger には接続されません。

編集: written?のインスタンス メソッドAlternativeです。このバグはhas_many、次のようにを介して取得したメソッドにアクセスしようとしたときにも発生します。

has_many :restrictions

alternative.restrictions.empty? # => NoMethodError

default_scopeRails 3 で問題を経験している人はいますか? または解決策がありますか?ありがとう!

4

2 に答える 2

1

で奇妙な問題を経験したことはありdefault_scopeませんが、現在の Rails 3 HEAD では Passenger が開発モードでコードを適切にリロードしていないことがわかりました。

「rails server」を実行するだけで動作しますか?

于 2010-07-14T14:16:24.440 に答える