Michael McGreevy
2006-Aug-18 18:45 UTC
[Rails] Migration crashes when using braces to delimit blocks
Hi, I have been using a bit of ruby here and there for scripting jobs for a year or so, and more recently have started dabbling in rails. I was wondering if anyone can help me with a strange behaviour I am getting when trying to run a migration. If I delimit a block for the create_table method with braces, the migration crashes, whereas the exact same code with the braces replaced by do/end runs fine. Does anybody have any idea why this would be? Thanks, Michael. ========== Migration Code: ========= class SimplifiedVersion < ActiveRecord::Migration def self.up create_table :functional_rights { |t| # A table storing the actions on a given controller that a given right allows a user to perform. t.column :name, :string, :null => false t.column :controller, :string, :null => false t.column :action, :string, :null => false } end def self.down drop_table :functional_rights end end ========== Output from rake: ========= rake aborted! ./db/migrate//002_simplified_version.rb:4: syntax error, unexpected ''{'', expecting kEND create_table :functional_rights { |t| # A table storing the actions on a given controller that a given right allows a user to perform. ^ ./db/migrate//002_simplified_version.rb:5: syntax error, unexpected tSYMBEG, expecting kEND t.column :name, :string, :null => false ^ ./db/migrate//002_simplified_version.rb:8: syntax error, unexpected ''}'', expecting kEND ./db/migrate//002_simplified_version.rb:15: syntax error, unexpected $end, expecting kEND
Michael McGreevy
2006-Aug-18 19:02 UTC
[Rails] Migration crashes when using braces to delimit blocks
> If I delimit a block for the create_table > method with braces, the migration crashes, whereas the exact same code with > the braces replaced by do/end runs fine. Does anybody have any idea why > this would be?Hmm, posted to soon, I''ve found the answer. It''s a precedence thing -- if I wrap the parameter to create_table in parentheses, everything is fine.