2016-11-10 37 views
3

首先,我真的很抱歉,因爲我還是這個新手。未定義的方法`每個'爲#<字符串:0x00000003a27a58>

我試着按照這個以下網站的說明安裝不含脂肪CRM:

http://www.blogdugeek.fr/crm-installation-fat-free-crm-debian-squeeze/

http://guides.fatfreecrm.com/Setup-Linux-or-Mac-OS.html

當我按照說明,我已經遇到了一些錯誤,並解決了一些。然而,在執行這個命令:

RAILS_ENV =生產耙分貝:創建分貝:遷移CRM:設置:負載

我被困在此命令行中,在這裏有以下的錯誤,我一直卡在:

rake aborted! 
NoMethodError: undefined method `each' for #<String:0x00000003a27a58> 
    /usr/local/rvm/gems/ruby-2.2.4/gems/activerecord-4.2.6/lib/active_record/connection_adapters/connection_specification.rb:150:in `resolve_all' 
    /usr/local/rvm/gems/ruby-2.2.4/gems/activerecord-4.2.6/lib/active_record/connection_handling.rb:69:in `resolve' 
    /usr/local/rvm/gems/ruby-2.2.4/gems/activerecord-4.2.6/lib/active_record/core.rb:46:in `configurations=' 
    /usr/local/rvm/gems/ruby-2.2.4/gems/activerecord-4.2.6/lib/active_record/railties/databases.rake:5:in `block (2 levels) in <top (required)>' 
    /usr/local/rvm/gems/ruby-2.2.4/bin/ruby_executable_hooks:15:in `eval' 
    /usr/local/rvm/gems/ruby-2.2.4/bin/ruby_executable_hooks:15:in `<main>' 

Tasks: TOP => db:create => db:load_config 
(See full trace by running task with --trace) 

因爲我搜索了更多相關的問題,我發現了一些,但它仍然沒有用。

另外,這裏有一些數據,可能需要:

紅寶石版

紅寶石2.2.4p230(2015年12月16日修訂53155)x86_64的Linux的]

Rails的版本

的Rails 4.2.6

這裏有誤差線

connection_specification.rb

def resolve(config) 
     if config 
     resolve_connection config 
     elsif env = ActiveRecord::ConnectionHandling::RAILS_ENV.call 
     resolve_symbol_connection env.to_sym 
     else 
     raise AdapterNotSpecified 
     end 
    end 

    # Expands each key in @configurations hash into fully resolved hash 
    def resolve_all 
     config = configurations.dup 
     config.each do |key, value|    <---- Error line 
     config[key] = resolve(value) if value 
     end 
     config 
    end 

connection_handling.rb

class MergeAndResolveDefaultUrlConfig # :nodoc: 
    def initialize(raw_configurations) 
    @raw_config = raw_configurations.dup 
    @env = DEFAULT_ENV.call.to_s 
    end 

    # Returns fully resolved connection hashes. 
    # Merges connection information from `ENV['DATABASE_URL']` if available. 
    def resolve 
    Error line ----> ConnectionAdapters::ConnectionSpecification::Resolver.new(config).resolve_all 
    end 

    private 
    def config 
     @raw_config.dup.tap do |cfg| 
     if url = ENV['DATABASE_URL'] 
      cfg[@env] ||= {} 
      cfg[@env]["url"] ||= url 
     end 
     end 
    end 

core.rb

def self.configurations=(config) 
    Error line --->  @@configurations = ActiveRecord::ConnectionHandling::MergeAndResolveDefaultUrlConfig.new(config).resolve 
    end 
    self.configurations = {} 

    # Returns fully resolved configurations hash 
    def self.configurations 
    @@configurations 
    end 

databases.rake

db_namespace = namespace :db do task :load_config do 
Error line ----> ActiveRecord::Base.configurations  = ActiveRecord::Tasks::DatabaseTasks.database_configuration || {} 
ActiveRecord::Migrator.migrations_paths = ActiveRecord::Tasks::DatabaseTasks.migrations_paths 

這裏的的config/database.yml的文件。

# MySQL. Versions 4.1 and 5.0 are recommended. 
# 
# Install the MySQL driver: 
# gem install mysql2 
# 
# And be sure to use new-style password hashing: 
# http://dev.mysql.com/doc/refman/5.0/en/old-client.html 
#------------------------------------------------------------------------------ 
development:&development 
    adapter:mysql2 
    encoding:utf8 
    database:fat_free_crm_development 
    pool:5 
    username:root 
# password: 
    socket:/var/run/mysqld/mysqld.sock 

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
test: 
    <<: *development 
    database: fat_free_crm_test 

production: 
    adapter: mysql 
    encoding: utf8 
    database: fat_free_crm_production 
    pool: 5 
    username: root 
    password: 
    socket: /var/run/mysqld/mysqld.sock 
socket: /tmp/mysql.sock 

staging: 
    <<: *development 
    database: fat_free_crm_staging 

希望聽到並尋求一些建議和學習。 如果需要更多信息,請告訴我。

感謝,

+0

可能是'config/database.yml'中的錯誤。請發佈該文件。 – Casper

+2

您在調試錯誤方面做了很多努力,但您忘記檢查錯誤行附近的數據。如果你添加了'require'pp,你可能已經自己解決了錯誤。 pp config'到錯誤行之前的'connection_specification.rb'中。記住這個未來的訣竅。 – Casper

+0

請不要發佈其他文件作爲答案。只需編輯原始問題並將其添加到最後。 – Casper

回答

1

database.yml的問題。 YAML要求在密鑰和數據之間有一個分隔符。

所以不喜歡這樣的:

production: 
    adapter:mysql 
    encoding:utf8 
    ... 

但是這樣的:

production: 
    adapter: mysql 
    encoding: utf8 
    ... 

您需要更正文件中的所有行,因爲你有這樣的錯誤隨處可見。

+0

對不起,麻煩先生,因爲我編輯了database.yml,執行這個命令行時發生錯誤。** RAILS_ENV =生產rake db:create db:migrate crm:settings:load ** – asd123

+0

發佈編輯過的數據庫。 yml'文件(從你的問題中刪除舊的文件,然後將新版本粘貼到問題中),你可能在某處仍然有錯誤 – Casper

+0

完成編輯文件:) – asd123

0

再次檢查database.yml文件。不要添加任何東西 即文件格式必須正確。 已經不知情地發表評論,導致錯誤。

相關問題