在本地访问我的Rails应用程序时,加载任何页面时出现以下错误:
/!\ FAILSAFE /!\ Tue Jul 06 15:08:17 -0500 2010
Status: 500 Internal Server Error
Expected /my_rails_app/app/helpers/admin/article_categories_helper.rb to define Admin::ArticleCategoriesHelper
如果我按照full trace,我会在我的应用程序控制器中找到这一行:
helper :all
如果我注释掉那一行,那么一切似乎都很好。
此外,这是我的/admin/article_categories_helper.rb
文件的内容:
module Admin::ArticleCategoriesHelper
end
那么,任何想法可能导致这种情况以及如何解决它?
答案 0 :(得分:1)
您的文件应命名为
/admin/article_categories_helper.rb
而不是
/admin/articles_categories_helper.rb
答案 1 :(得分:1)
如果您尝试了Seriousken的答案并获得'xxxx不是模块',那么将其更改为一个类。 以下对我有用。
我有:/helpers/member/finance/bank_batches_helper.rb
其中我有:
module Member::Finance::BankBatchesHelper
def some_method
# ...
end
end
只需添加上面的父类,如下所示:
class Member
class Finance
end
end
module Member::Finance::BankBatchesHelper
def some_method
# ...
end
end
希望这有帮助。
答案 2 :(得分:0)
该错误通常意味着加载有问题的文件时遇到了一些问题。是否在此时定义了Admin模块?你可以尝试:
module Admin
module ArticleCategoriesHelper
end
end
代替。无论Admin是否存在,这都将有效。
最简单的解决方案是完全删除文件,因为您似乎没有将它用于任何事情。
答案 3 :(得分:0)
我有同样的问题,但对我来说,这是在将Rails项目从Ruby 1.8.7升级到1.9.2时引起的。在1.9.2中,case语句的语法发生了变化。简写:(冒号)不再使用。相反,您必须使用then
关键字。
# works in 1.8.x
case numtype
when 'smallint' : 4
上面的代码必须更改为
# works in 1.9.2
case numtype
when 'smallint' then 4
当我在助手中修复所有案例陈述时,我不再遇到此错误。