2013-02-02 18 views
8

मैं Rails scaffolding इस्तेमाल किया एक मॉडल टर्मिनल से आदेश का उपयोग करने के लिए विस्थापित:रेक db: दे रही है 'अप्रत्याशित N' त्रुटि

rails generate scaffold Venue venueid:string, venueName:string, venueAddress:string, venueCity:string, venueState:string, venueZip:integer, venuePhone:string, venueAge:int 

सब कुछ स्थापित करने या ठीक उत्पन्न करने के लिए लगता है, लेकिन मैं मिलता है जब मैं rake db:migrate चलाने निम्न त्रुटि:

rake aborted! 
/Users/Banderson/Documents/demo/db/migrate/20130202222224_create_venues.rb:5: syntax error, unexpected '\n' 

     t.string, :venueName 
^ 
org/jruby/RubyKernel.java:1062:in `require' 
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activesupport-3.2.10/lib/active_support/dependencies.rb:251:in `require' 
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activesupport-3.2.10/lib/active_support/dependencies.rb:236:in `load_dependency' 
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activesupport-3.2.10/lib/active_support/dependencies.rb:251:in `require' 
/Users/Banderson/Documents/demo/db/migrate/20130202222224_create_venues.rb:537:in `load_migration' 
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/migration.rb:533:in `migration' 
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/migration.rb:528:in `migrate' 
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/migration.rb:720:in `migrate' 
org/jruby/RubyProc.java:270:in `call' 
org/jruby/RubyProc.java:220:in `call' 
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/migration.rb:775:in `ddl_transaction' 
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/connection_adapters/abstract/database_statements.rb:192:in `transaction' 
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/transactions.rb:208:in `transaction' 
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/migration.rb:775:in `ddl_transaction' 
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/migration.rb:719:in `migrate' 
org/jruby/RubyArray.java:1620:in `each' 
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/migration.rb:700:in `migrate' 
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/migration.rb:570:in `up' 
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/migration.rb:551:in `migrate' 
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/railties/databases.rake:179:in `(root)' 
org/jruby/RubyProc.java:270:in `call' 
org/jruby/RubyProc.java:220:in `call' 
org/jruby/RubyArray.java:1620:in `each' 
org/jruby/RubyArray.java:1620:in `each' 
org/jruby/RubyKernel.java:1087:in `load' 
Tasks: TOP => db:migrate 
(See full trace by running task with --trace) 

मैं क्या गलत कर रहा हूं, या मैं इसे कैसे ठीक कर सकता हूं?

उत्तर

25

rails generate scaffold Venue venueid:string venueName:string venueAddress:string venueCity:string venueState:string venueZip:integer venuePhone:string venueAge:int 
बजाय

की कोशिश करो। आपके पास प्रत्येक क्षेत्र के बीच कॉमा नहीं होना चाहिए।

अल्पविराम के साथ

, आप इसे में इस के साथ एक प्रवास जेनरेट कर रहे हैं:

create_table :venues do |t| 
    t.string, :venueid 
    t.string, :venueName 
    t.string, :venueAddress 
    t.string, :venueCity 
    t.string, :venueState 
    t.integer, :venueZip 
    t.string, :venuePhone 
    t.int :venueAge 

    t.timestamps 
end 

आप देख सकते हैं, प्रत्येक t.string/पूर्णांक/आदि। किसी भी तर्क दिए जाने से पहले विधि कॉल में अल्पविराम होता है, जो अमान्य है। यदि यह कार्य करें:

puts, "hi" 

मैं त्रुटि

syntax error, unexpected '\n', expecting tCOLON2 or '[' or '.' 

जो त्रुटि आप था के समान है मिलता है।

tldr: जेनरेटर

+0

में डिफ़ॉल्ट रूप से स्ट्रिंग के लिए कोई आवश्यकता नहीं है, तो कमांड का उपयोग न करें। दृढ़ता से स्थल_आईडी को प्रोत्साहित करें: पूर्णांक – mathieugagne