2013-02-02 6 views
8

私は端末からコマンドを使用してモデルを作るためにRails scaffoldingを使用:すくいデシベル:与え移行する「予期せぬを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 

を試してみてください。各フィールドの間にコンマを置くべきではありません。あなたは、各t.string /整数/などを見ることができるように

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 

:カンマで

、あなたはそれでこのでの移行が発生しています。引数が指定される前にメソッド呼び出しにカンマがあり、無効です。これを行う場合:

puts, "hi" 

を私はあなたが持っていたエラーのようなエラー

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

を取得します。

tldr:ジェネレータではカンマを使用しません。

+0

デフォルトのため、文字列は必要ありません。 venue_id:intを強く推奨する – mathieugagne

関連する問題