1

Rails コンソールを開いて ./script/console (スクリプト フォルダーにはコンソール ファイルが含まれています) を実行すると、コンソール Users.find(:all) に入力すると、このメッセージが表示されます

'NameError: uninitialized constant User
    from (irb):1
'

コンソールでコマンドを実行するたびに、同様のメッセージが表示されます (irb で接続していないことを知っています)。私はそれをグーグルで検索し、スタックで尋ねられたいくつかの同様の問題を見ましたが、満足のいく答えは得られませんでした. 誰かがアイデアを持っていますか?

Eidt 1 : 役に立つかどうかはわかりませんが、ユーザー モデル クラスに投稿することをお勧めします。

require "digest/sha1"
require_dependency "event"

class User < ActiveRecord::Base
  include UrlLinting
  include Gitorious::Authorization

  has_many :projects
  has_many :memberships, :dependent => :destroy
  has_many :groups, :through => :memberships
  has_many :repositories, :as => :owner, :conditions => ["kind != ?", Repository::KIND_WIKI],
    :dependent => :destroy
  has_many :cloneable_repositories, :class_name => "Repository",
     :conditions => ["kind != ?", Repository::KIND_TRACKING_REPO]
  has_many :committerships, :as => :committer, :dependent => :destroy
  has_many :commit_repositories, :through => :committerships, :source => :repository,
  :conditions => ["repositories.kind NOT IN (?)", Repository::KINDS_INTERNAL_REPO]
  has_many :ssh_keys, :order => "id desc", :dependent => :destroy
  has_many :comments
  has_many :email_aliases, :class_name => "Email", :dependent => :destroy
  has_many :events, :order => "events.created_at asc", :dependent => :destroy
  has_many :events_as_target, :class_name => "Event", :as => :target
  has_many :favorites, :dependent => :destroy
  has_many :feed_items, :foreign_key => "watcher_id"
  has_many :content_memberships, :as => :member

  # Virtual attribute for the unencrypted password
  attr_accessor :password, :current_password

  attr_protected :login, :is_admin, :password, :current_password

  # For new users we are a little more strict than for existing ones.
  USERNAME_FORMAT = /[a-z0-9\-_\.]+/i.freeze
  USERNAME_FORMAT_ON_CREATE = /[a-z0-9\-]+/.freeze
  validates_presence_of     :login, :email,               :if => :password_required?
  validates_format_of       :login, :with => /^#{USERNAME_FORMAT_ON_CREATE}$/i, :on => :create
  validates_format_of       :login, :with => /^#{USERNAME_FORMAT}$/i, :on => :update
  validates_format_of       :email, :with => Email::FORMAT
  validates_presence_of     :password,                   :if => :password_required?
  validates_presence_of     :password_confirmation,      :if => :password_required?
  validates_length_of       :password, :within => 4..40, :if => :password_required?
  validates_confirmation_of :password,                   :if => :password_required?
  validates_length_of       :login,    :within => 3..40
  validates_length_of       :email,    :within => 3..100
  validates_uniqueness_of   :login, :email, :case_sensitive => false
  validates_acceptance_of :terms_of_use, :on => :create, :allow_nil => false
  validates_format_of     :avatar_file_name, :with => /\.(jpe?g|gif|png|bmp|svg|ico)$/i, :allow_blank => true

  before_save :encrypt_password
  before_create :make_activation_code
  before_validation :lint_identity_url, :downcase_login
  after_save :expire_avatar_email_caches_if_avatar_was_changed
  after_destroy :expire_avatar_email_caches

  state_machine :aasm_state, :initial => :pending do
    state :terms_accepted

    event :accept_terms do
      transition :pending => :terms_accepted
    end

  end

編集2:コンソールを実行すると、いくつかのエラーメッセージが省略されました(ただし、コンソールはロードされます)

 /var/www/gitorious/config/environment.rb:25:RuntimeError: Your config/gitorious.yml does not have an entry for your current Rails environment. Please consult config/gitorious.sample.yml for instructions.
/usr/lib/ruby/gems/1.8/gems/rails-2.3.14/lib/rails/backtrace_cleaner.rb:2:NameError: uninitialized constant ActiveSupport::BacktraceCleaner
/usr/lib/ruby/gems/1.8/gems/rails-2.3.14/lib/console_with_helpers.rb:5:NameError: uninitialized constant ApplicationController
4

3 に答える 3

1

User以下のようにモデルが定義され ていると仮定します。app/models/user.rb

class User < ActiveRecord::Base
  #Your things
end

モデル名を使用 (つまり) しUserないUsers:

User.find(:all) or User.all  # This will display all user records
于 2013-02-17T16:24:16.820 に答える
1

トリックを行ったのは次のとおりです。./script/consoleを実行する代わりに、実行しました

export RAILS_ENV=production && ./script/console 
于 2013-02-17T18:42:54.933 に答える