【问题标题】:Ruby Rack on Phusion NoMethod Error for Table NameRuby Rack on Phusion NoMethod 表名错误
【发布时间】:2012-03-22 04:24:53
【问题描述】:

错误信息: # (NoMethodError) 的未定义方法“AdminUser” 异常类: PhusionPassenger::UnknownError

AdminUser 是我数据库中的一个表。最糟糕的是,我什至从不使用该表或从我的代码中的任何地方调用它。 我什至提到 AdminUser 的唯一地方是在我的 admin_user.rb 模型中 -

class AdminUser < ActiveRecord::Base
has_and_belongs_to_many :pages
  scope :named, lambda {|first,last| where(:first_name => first, :last_name => last)}

end

和 page.rb 模型

class Page < ActiveRecord::Base

  belongs_to :subject
  has_many :sections
  has_and_belongs_to_many :editors, :class_name => "AdminUser"
end

并且在 section.rb 模型中

class Section < ActiveRecord::Base

  AdminUser has_and_belongs_to_many :pages
  belongs_to :page

end

就是这样。还有 0 次提及 AdminUser - 这是我什至还没有开始在我的应用程序中使用的东西。 我在本地运行我的应用程序时没有问题,但在 Ubuntu 上,使用 Passenger 和 Apache2,Phusion 拒绝加载我的应用程序。

供参考(我对 RoR 和 Ubuntu(基于 Linux 的操作系统)相当陌生)-但是是的,我确实运行了 rake db:migrate,是的,我确实将 Passenger 作为 gem 安装,是的,我正在使用 mysql2 gem 进行连接到我的数据库。当然,我确实在 ubuntu 上安装并启动了 mysql 服务。 (此外,我确实创建了数据库、用户,并且 - 基本上 rake db:migrate 工作 100%)。

你能帮帮我吗,我疯了 - 已经有这个问题 2 天了 - 不知道去哪里找。

环境:Rails 3.2.2、Ruby 1.9.3-p125

【问题讨论】:

    标签: ruby-on-rails-3.1 passenger nomethoderror


    【解决方案1】:

    尝试从section.rb 中删除AdminUser

    【讨论】:

    • 嗯,删除我得到的只是标准的 500.html - 出了点问题 - 没有关于它的日志......
    • 好的,问题是上面的代码在开发中工作,但在生产中抛出错误......谁能解释为什么?
    • 也许是因为,在生产中,rails 会预加载所有类。 section.rb 是否在开发中加载过?即您是否在开发中积极使用Section
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多