2010-09-22 12 views
23

बस रेल 3.0रेक डीबी के दौरान फिक्सनम को स्ट्रिंग में परिवर्तित नहीं कर सकता: बनाएं

का उपयोग करके एक नया ब्लॉग ऐप बनाया है मेरा मॉडल सरल है:

class Post < ActiveRecord::Base 
    has_many :comments 
end 

class Comment < ActiveRecord::Base 
    belongs_to :post 
end 

मैंने कमांड का उपयोग किया: रेल मचान पोस्ट शीर्षक: स्ट्रिंग बॉडी: टेक्स्ट इत्यादि उत्पन्न करते हैं

इन्हें बनाने के लिए फ़ाइलें।

अब मैं डीबी उत्पन्न करना चाहता था:

रेक डीबी:

बनाएं मुझे त्रुटि मिली:

rake aborted! 
can't convert Fixnum into String 

कोई विचार क्या समस्या हो सकती है?

मैं इस ट्यूटोरियल अनुसरण कर रहा हूं:

** Invoke db:create (first_time) 
** Invoke db:load_config (first_time) 
** Invoke rails_env (first_time) 
** Execute rails_env 
** Execute db:load_config 
** Execute db:create 
rake aborted! 
can't convert Fixnum into String 
/Library/Ruby/Gems/1.8/gems/mysql2-0.2.4/lib/mysql2/client.rb:36:in `connect' 
/Library/Ruby/Gems/1.8/gems/mysql2-0.2.4/lib/mysql2/client.rb:36:in `initialize' 
/Library/Ruby/Gems/1.8/gems/mysql2-0.2.4/lib/active_record/connection_adapters/mysql2_adapter.rb:14:in `new' 
/Library/Ruby/Gems/1.8/gems/mysql2-0.2.4/lib/active_record/connection_adapters/mysql2_adapter.rb:14:in `mysql2_connection' 
/Library/Ruby/Gems/1.8/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:230:in `send' 
/Library/Ruby/Gems/1.8/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:230:in `new_connection' 
/Library/Ruby/Gems/1.8/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:238:in `checkout_new_connection' 
/Library/Ruby/Gems/1.8/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:194:in `checkout' 
/Library/Ruby/Gems/1.8/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:190:in `loop' 
/Library/Ruby/Gems/1.8/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:190:in `checkout' 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
/Library/Ruby/Gems/1.8/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:189:in `checkout' 
/Library/Ruby/Gems/1.8/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:96:in `connection' 
/Library/Ruby/Gems/1.8/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:318:in `retrieve_connection' 
/Library/Ruby/Gems/1.8/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:97:in `retrieve_connection' 
/Library/Ruby/Gems/1.8/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:89:in `connection' 
/Library/Ruby/Gems/1.8/gems/activerecord-3.0.0/lib/active_record/railties/databases.rake:68:in `create_database' 
/Library/Ruby/Gems/1.8/gems/activerecord-3.0.0/lib/active_record/railties/databases.rake:33 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain' 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/bin/rake:31 
/usr/bin/rake:19:in `load' 
/usr/bin/rake:19 

database.yaml:

# 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: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: myblog_development 
    pool: 5 
    username: root 
    password: 123 
    socket: /tmp/mysql.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: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: myblog_test 
    pool: 5 
    username: root 
    password: 123 
    socket: /tmp/mysql.sock 

production: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: myblog_production 
    pool: 5 
    username: root 
    password: 123 
    socket: /tmp/mysql.sock 

माइग्रेशन: http://sixrevisions.com/web-development/how-to-create-a-blog-from-scratch-using-ruby-on-rails/

यहाँ का पता लगाने है

class CreatePosts < ActiveRecord::Migration 
    def self.up 
    create_table :posts do |t| 
     t.string :title 
     t.text :body 

     t.timestamps 
    end 
    end 

    def self.down 
    drop_table :posts 
    end 
end 

अगली माइग्रेशन:

class CreateComments < ActiveRecord::Migration 
    def self.up 
    create_table :comments do |t| 
     t.string :name 
     t.text :body 
     t.references :post 

     t.timestamps 
    end 
    end 

    def self.down 
    drop_table :comments 
    end 
end 
+0

वहाँ एक पश्व-अनुरेखन है? – Matchu

+0

@matchu --trace आउटपुट के साथ अद्यतन किया गया। – Blankman

+3

आपका डेटाबेस.आईएमएल और आपका माइग्रेशन कैसा दिखता है? – sosborn

उत्तर

68

YAML पार्सर का अनुमान लगाना क्या डेटा प्रकार अपने database.yml फ़ाइल में प्रत्येक मूल्य किसी भी अन्य प्रासंगिक जानकारी के बिना, है।

इस तरह, यह शायद मान 123 का मान एक पूर्णांक होने के लिए मानता है।

कोशिश कर रहा स्ट्रिंग व्याख्या के लिए मजबूर:

password: "123" 
+1

मैं इसके बारे में सोच रहा था, लेकिन उपयोगकर्ता नाम क्यों काम करता है? यह स्ट्रिंग मानता है? मैं इस फिक्स आज रात धन्यवाद का प्रयास करूंगा! – Blankman

+1

वाईएएमएल पार्सर अनुमान लगाता है कि यह किस प्रकार का डेटा है, यह कैसा दिखता है। तो, हाँ, चूंकि 'रूट' संभवतः कोई अन्य डेटा प्रकार नहीं हो सकता है, यह स्ट्रिंग मानता है। – Matchu

+2

आपको धन्यवाद! यह मुझे पागल कर रहा था। आपने मुझे फिर से देखा है :-) –

संबंधित मुद्दे