2015-09-13 34 views
0

運行簡單的控制檯命令如Release.first(也嘗試release.first)時,遇到了這個錯誤,我在其他表上努力工作的時候也得到一個類似的錯誤時「NameError:未初始化的常量」錯誤連接到外部MySQL數據庫

release.rb

module default 
    class Release < ActiveRecord::Base 
    self.table_name = 'releases' 
    self.inheritance_column = 'ruby_type' 
    self.primary_key = 'id' 

    if ActiveRecord::VERSION::STRING < '4.0.0' || defined?(ProtectedAttributes) 
     attr_accessible :artist, :all_artists, :format, :title, :label, :label_no_country, :link, :genre, :date, :image, :favourite, :time, :category, :format_category, :soundclip_1, :soundclip_2, :spotify, :digital_link, :display, :zero_inch_id, :zero_inch_link, :zero_release_url 
    end 

    has_many :alerts_sents, :foreign_key => 'release_id', :class_name => 'AlertsSent' 
    has_many :audio_links, :foreign_key => 'release_id', :class_name => 'AudioLink' 
    has_many :charts_extendeds, :foreign_key => 'release_id', :class_name => 'ChartsExtended' 
    has_many :juno_sales, :foreign_key => 'release_id', :class_name => 'JunoSale' 
    has_many :not_recommendeds, :foreign_key => 'release_id', :class_name => 'NotRecommended' 
    has_many :num_release_recs, :foreign_key => 'release_id', :class_name => 'NumReleaseRec' 
    has_many :recommendations, :foreign_key => 'release_id', :class_name => 'Recommendation' 
    has_many :release_artists, :foreign_key => 'release_id', :class_name => 'ReleaseArtist' 
    has_many :spotifies, :foreign_key => 'release_id', :class_name => 'Spotify' 
    has_many :twitter_posteds, :foreign_key => 'release_id', :class_name => 'TwitterPosted' 
    has_many :user_adds, :foreign_key => 'release_id', :class_name => 'UserAdd' 
    end 
end 

的錯誤是

NameError: uninitialized constant Release 
    from (irb):1 
    from /Users/siquick/.rvm/gems/ruby-2.1.3/gems/railties-4.2.1/lib/rails/commands/console.rb:110:in `start' 
    from /Users/siquick/.rvm/gems/ruby-2.1.3/gems/railties-4.2.1/lib/rails/commands/console.rb:9:in `start' 
    from /Users/siquick/.rvm/gems/ruby-2.1.3/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:68:in `console' 
    from /Users/siquick/.rvm/gems/ruby-2.1.3/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:39:in `run_command!' 
    from /Users/siquick/.rvm/gems/ruby-2.1.3/gems/railties-4.2.1/lib/rails/commands.rb:17:in `<top (required)>' 
    from /Users/siquick/Rails/soundshelter/bin/rails:8:in `<top (required)>' 
    from /Users/siquick/.rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /Users/siquick/.rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from -e:1:in `<main>' 

數據庫是遠程服務器,並且我生成使用rare_map

schema.rb

# encoding: UTF-8 
# This file is auto-generated from the current state of the database. Instead 
# of editing this file, please use the migrations feature of Active Record to 
# incrementally modify your database, and then regenerate this schema definition. 
# 
# Note that this schema.rb definition is the authoritative source for your 
# database schema. If you need to create the application database on another 
# system, you should be using db:schema:load, not running all the migrations 
# from scratch. The latter is a flawed and unsustainable approach (the more migrations 
# you'll amass, the slower it'll run and the greater likelihood for issues). 
# 
# It's strongly recommended that you check this file into your version control system. 

ActiveRecord::Schema.define(version: 20150910131323) do 

    create_table "releases", force: :cascade do |t| 
    t.string "artist",   limit: 255, null: false 
    t.string "all_artists",  limit: 200, null: false 
    t.string "format",   limit: 80, null: false 
    t.string "title",   limit: 255, null: false 
    t.string "label",   limit: 255, null: false 
    t.string "label_no_country", limit: 255, null: false 
    t.text "link",    limit: 65535, null: false 
    t.string "genre",   limit: 50, null: false 
    t.string "date",    limit: 80, null: false 
    t.text "image",   limit: 65535, null: false 
    t.string "favourite",  limit: 1,  null: false 
    t.string "time",    limit: 20, null: false 
    t.string "category",   limit: 30, null: false 
    t.string "format_category", limit: 20, null: false 
    t.string "soundclip_1",  limit: 255, null: false 
    t.string "soundclip_2",  limit: 255, null: false 
    t.string "spotify",   limit: 100, null: false 
    t.string "digital_link",  limit: 255, null: false 
    t.string "display",   limit: 1,  null: false 
    t.integer "zero_inch_id",  limit: 4,  null: false 
    t.text "zero_inch_link", limit: 65535, null: false 
    t.string "zero_release_url", limit: 150, null: false 
    end 

    add_index "releases", ["all_artists"], name: "all_artists", using: :btree 
    add_index "releases", ["all_artists"], name: "all_artists_2", using: :btree 
    add_index "releases", ["all_artists"], name: "all_artists_3", using: :btree 
    add_index "releases", ["all_artists"], name: "all_artists_4", using: :btree 
    add_index "releases", ["all_artists"], name: "all_artists_5", using: :btree 
    add_index "releases", ["artist"], name: "artist", using: :btree 
    add_index "releases", ["artist"], name: "artist_2", using: :btree 
    add_index "releases", ["artist"], name: "artist_3", using: :btree 
    add_index "releases", ["artist"], name: "artist_4", using: :btree 
    add_index "releases", ["category"], name: "category", using: :btree 
    add_index "releases", ["date"], name: "date", using: :btree 
    add_index "releases", ["format"], name: "format", using: :btree 
    add_index "releases", ["format_category"], name: "format_category", using: :btree 
    add_index "releases", ["format_category"], name: "format_category_2", using: :btree 
    add_index "releases", ["genre"], name: "genre", using: :btree 
    add_index "releases", ["genre"], name: "genre_2", using: :btree 
    add_index "releases", ["genre"], name: "genre_3", using: :btree 
    add_index "releases", ["genre"], name: "genre_4", using: :btree 
    add_index "releases", ["id"], name: "id", using: :btree 
    add_index "releases", ["id"], name: "id_2", using: :btree 
    add_index "releases", ["label"], name: "label", using: :btree 
    add_index "releases", ["label"], name: "label_2", using: :btree 
    add_index "releases", ["label_no_country"], name: "label_no_country", using: :btree 
    add_index "releases", ["label_no_country"], name: "label_no_country_2", using: :btree 
    add_index "releases", ["label_no_country"], name: "label_no_country_3", using: :btree 
    add_index "releases", ["label_no_country"], name: "label_no_country_4", using: :btree 
    add_index "releases", ["label_no_country"], name: "label_no_country_5", using: :btree 
    add_index "releases", ["spotify", "zero_release_url"], name: "spotify_2", using: :btree 
    add_index "releases", ["spotify"], name: "spotify", using: :btree 
    add_index "releases", ["title"], name: "title", using: :btree 
    add_index "releases", ["zero_inch_id"], name: "zero_inch_id", using: :btree 

    add_foreign_key "releases", "charts_extended", column: "id", primary_key: "release_id", name: "releases_ibfk_1" 
end 

回答

1

Release類是default模塊中定義(其順便說一句,也錯誤拼寫爲Ruby類/模塊應該開始大寫)的模型,所以您將無法在模塊範圍之外僅參考Report

更改定義並取出模塊。

class Release < ActiveRecord::Base 
    self.table_name = 'releases' 
    self.inheritance_column = 'ruby_type' 
    self.primary_key = 'id' 

    if ActiveRecord::VERSION::STRING < '4.0.0' || defined?(ProtectedAttributes) 
     attr_accessible :artist, :all_artists, :format, :title, :label, :label_no_country, :link, :genre, :date, :image, :favourite, :time, :category, :format_category, :soundclip_1, :soundclip_2, :spotify, :digital_link, :display, :zero_inch_id, :zero_inch_link, :zero_release_url 
    end 

    has_many :alerts_sents, :foreign_key => 'release_id', :class_name => 'AlertsSent' 
    has_many :audio_links, :foreign_key => 'release_id', :class_name => 'AudioLink' 
    has_many :charts_extendeds, :foreign_key => 'release_id', :class_name => 'ChartsExtended' 
    has_many :juno_sales, :foreign_key => 'release_id', :class_name => 'JunoSale' 
    has_many :not_recommendeds, :foreign_key => 'release_id', :class_name => 'NotRecommended' 
    has_many :num_release_recs, :foreign_key => 'release_id', :class_name => 'NumReleaseRec' 
    has_many :recommendations, :foreign_key => 'release_id', :class_name => 'Recommendation' 
    has_many :release_artists, :foreign_key => 'release_id', :class_name => 'ReleaseArtist' 
    has_many :spotifies, :foreign_key => 'release_id', :class_name => 'Spotify' 
    has_many :twitter_posteds, :foreign_key => 'release_id', :class_name => 'TwitterPosted' 
    has_many :user_adds, :foreign_key => 'release_id', :class_name => 'UserAdd' 
    end 

您也可能要刪除所有如table_name的各種不必要的設置,除非您使用的是舊版本的Rails,刪除attr_accessible

它看起來像你使用的發電機添加了一堆不必要的代碼。

+0

謝謝你。我用你的建議取而代之,並重新啓動rails服務器,但不幸的是它仍然返回相同的錯誤。 – Franco

相關問題