我刚安装了铁路,试图运行几个简单的示例运行。 我有一个应用程序模型和控制器,它会导致一些胃灼热。
没有真正的应用程序表 - 该模型用于加载(包括)身份验证系统等内容。控制器设置helper_methods等。
我还有很多控制器,它们位于许多模型的子管理器中。
当我跑:铁路-o models.dot -M
我明白了:
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:1833:in method_missing': undefined method
helper_method'for Application(表不存在):Class (NoMethodError)
当我跑:铁路-o controllers.dot -C 我得到/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:445:in"load_missing_constant':未初始化的常量CoverageAmountsController(NameError)
coverage_amounts.rb控制器(类Admin :: CoverageAmountsController< AdminController)位于app / controllers / admin中 - 如果我将其移出,则会在admin目录中的下一个控制器上显示 - 所以它似乎不喜欢控制器在管理文件夹中。
我该怎么做才能解决这些问题?我可以在铁路或我的应用程序中做些什么来使它工作吗?我想用这样的东西来看看它是否适合我的需要。
答案 0 :(得分:0)
不要将application用作模型的名称,因为这会导致与应用程序控制器混淆 - 也称为application.rb。在rails wiki中查看此主题: http://wiki.rubyonrails.org/rails/pages/ReservedWords#fn2
请注意,此问题应在边缘导轨中解决:http://github.com/rails/rails/commit/fcce1f17eaf9993b0210fe8e2a8117b61a1f0f69
同样,ActiveRecord假设您的班级有相应的表格(我认为)。您可能希望将身份验证系统包含在应用程序控制器中,除非您有充分的理由不这样做。
您可能会发现进行此更改会修复您遇到的其他控制器问题。 让我知道。
答案 1 :(得分:0)
感谢您的回复......
我在应用程序模型中发生了一些事情。这些都可以转移到应用程序控制器并给出相同的结果吗?
class Application < ActiveRecord::Base
include AuthenticatedSystem
# this gives all model access to current_user
before_filter { |c| User.current_user = c.current_user }
# some miscellanous modules
require HashExtensions
require LiquidExtensions
end