2013-02-17 2 views
1

Когда я открываю консоль рельсы, работает ./script/console (папка сценарий содержит файл консоли), я вход в консоль Users.find (: все) и я получаю это сообщениеДоступ к базе данных с рельсов консоли

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

У меня есть подобное сообщение каждый раз, когда я запускаю commnad в консоли (зная, что я не подключаюсь irb). Я просмотрел его в Google и увидел некоторые подобные проблемы, которые были заданы в стеке, и я не получил удовлетворительного ответа. У кого-то есть идея?

Eidt 1: Я не konow, если это полезно, но вот как это было предложено, чтобы быть размещена модель пользовательского класса

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 

Edit 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 

ответ

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 
+0

Конечно, я получаю такое же сообщение: NameError: неинициализированный постоянный пользователь \t из (IRB): 3 – Newben

+0

Тогда вы не имеете 'модели User', определенную в' приложения/models'. Проверьте ваши 'app/models' n скажите, что у вас есть. – codeit

+0

Конечно, я создал учетные записи пользователей, и я могу войти с ними без pb – Newben

1

вот что сделал трюк: вместо того, чтобы бежать ./script/console, я побежал

export RAILS_ENV=production && ./script/console 
1

От ошибки, я могу см., что вы назвали таблицу от irb. Если вы хотите получить доступ к таблицам из консоли рельсы, а затем в командной строке вместо irb вы должны ввести:

rails console 

Во-вторых, если вы хотите, чтобы получить все записи из таблицы пользователей, вы должны использовать:

User.all 
Смежные вопросы