sure you could do that, but the problem is that most likely your columns are going to have more differences than just the name of the column, so you'd have to structure your loops around you individual columns...when its all said and done, it would most likely have just been easier to spell each one out. not only that, but the method that everyone tends to use is very readable.
ex:
# all same type, easy enough [:name, :description, :location].each do |col| add_column col, :string end
now try that when all your columns are different types, lengths, not null, unique, have default values, etc...not so easy now.