This is my first post here so go easy. I am trying to build my first app in Rails 3.2.1. I am trying to generate a scaffold for Paint using the following terminal command:
rails generate scaffold Paint paint_family:string paint_hex:array paint_available:boolean paint_location:integer paint_quantity:integer paint_additional_info:text
But when I try to migrate I get the following error:
undefined method `array' for #<ActiveRecord::ConnectionAdapters::TableDefinition:0x007fbd8bdb1c58>
Here is the migration record:
class CreatePaints < ActiveRecord::Migration
def change
create_table :paints do |t|
t.string :paint_family
t.array :paint_hex
t.boolean :paint_available
t.integer :paint_location
t.integer :paint_quantity
t.text :paint_additional_info
t.timestamps
end
end
end
I cannot for the life of me figure out why this is. But that's because I don't know what I'm doing. Any advice/help would be greatly appreciated.
The problem is this:
t.array :paint_hex
There is no column type called array
. You can use string
or text
and then serialize the value if you really want to save an array.
class Paint < ActiveRecord::Base
serialize :paint_hex
end
Just by the way: Prefixing all your attribute names with paint_
is a pretty uncommon naming scheme for a rails application.