铁路在应用模型& amp;管理员级控制器

时间:2009-01-17 01:12:39

标签: ruby-on-rails ruby

我刚安装了铁路,试图运行几个简单的示例运行。 我有一个应用程序模型和控制器,它会导致一些胃灼热。

没有真正的应用程序表 - 该模型用于加载(包括)身份验证系统等内容。控制器设置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目录中的下一个控制器上显示 - 所以它似乎不喜欢控制器在管理文件夹中。

我该怎么做才能解决这些问题?我可以在铁路或我的应用程序中做些什么来使它工作吗?我想用这样的东西来看看它是否适合我的需要。

2 个答案:

答案 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