Rails 3中的default_scope有问题吗? NoMethodError

时间:2010-07-14 12:37:40

标签: ruby-on-rails ruby-on-rails-3 default-scope

将此添加到我的Alternative - 模型:

后,我遇到了一个奇怪的错误
default_scope order(:number)

在第一页刷新时,一切正常。在随后的刷新中,我得到了

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

Alternative最确定的是written?方法。我正在运行Passenger,所以在

之后
touch tmp/restart.txt

该页面再次有效。第一次刷新。但错误消息再次返回后续刷新。删除default_scope解决了问题(但仅在另一台服务器重新启动后)。

编辑:通过rails server在WEBrick上运行时,该错误也存在,因此未与Passenger连接。

修改: written?Alternative上的实例方法。尝试访问通过has_many获得的方法时,也会出现此错误,如下所示:

has_many :restrictions

alternative.restrictions.empty? # => NoMethodError

在Rails 3中遇到default_scope问题的其他人?还是有解决方案?谢谢!

2 个答案:

答案 0 :(得分:1)

我没有遇到default_scope的奇怪问题,但我确实发现Passenger没有在开发模式下使用当前的Rails 3 HEAD正确地重新加载代码 - 导致像你遇到的那样令人困惑的断言。

如果您只运行“rails server”,它会起作用吗?

答案 1 :(得分:0)