# Noob - added a column via migration but get error on insert

**URL:** <https://www.ruby-forum.com/t/noob-added-a-column-via-migration-but-get-error-on-insert/156057>\
**Category:** Rails\
**Created:** [December 19, 2008, 9:30pm UTC](https://www.ruby-forum.com/t/noob-added-a-column-via-migration-but-get-error-on-insert/156057 "2008-12-19T21:30:28Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![zakifataya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/c89c15/32.png) [@zakifataya](https://www.ruby-forum.com/u/zakifataya)\
**Post date:** [December 19, 2008, 9:30pm UTC](https://www.ruby-forum.com/t/noob-added-a-column-via-migration-but-get-error-on-insert/156057/1 "2008-12-19T21:30:28Z")

</div>

Hello!

I’m very new to ruby and ruby on rails. I’m following a tutorial found  
here:

> **[Active Record I | Ruby on Rails Programming](https://www.jpassion.com/ruby-on-rails-programming/active-record-i)**
>
> Active Record I Topics What is Active Record? Automatic mapping between domain classes and tables Active Record Object creation, update, and delete Active Record Query Operations Batch mode “where” Ordering, Selecting, Limit and Offset Dynamic...

I’m running NetBeans as an IDE, with jruby, rails and MySQL.

Here is the basic rundown of what I have done

1. Created db via Rake

2. Created table with 3 columns via Migration (user name:string  
hobby:string age:integer)

3. Inserted 3 user records via Rails Console

4. Added additional column via Migration (AddEmailField email:string)  
(Inside the migration rb → “add\_column :users, :email, :string”

5. This is where things go poorly, I try to add a new user with the  
email but get an error. Here is what I enter via Rails Console  
user = User.new(:name =\> “TommyJones”, :hobby =\> “tennis”, :age =\> 138,  
:email =\> “removed\_email\_address@domain.invalid”)

## And I get the following error:

## NoMethodError: undefined method `email=' for #<User:0x751932> from C:/Program Files/NetBeans 6.5 RC2/ruby2/jruby-1.1.4/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/attribute_methods.rb:251:in `method\_missing’ from C:/Program Files/NetBeans 6.5 RC2/ruby2/jruby-1.1.4/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active\_record/base.rb:2361:in `attributes=' from C:/Program Files/NetBeans 6.5 RC2/ruby2/jruby-1.1.4/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/base.rb:2360:in `each’ from C:/Program Files/NetBeans 6.5 RC2/ruby2/jruby-1.1.4/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active\_record/base.rb:2360:in `attributes=' from C:/Program Files/NetBeans 6.5 RC2/ruby2/jruby-1.1.4/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/base.rb:2130:in `initialize’ from (irb):23:in `binding' from C:/Program Files/NetBeans 6.5 RC2/ruby2/jruby-1.1.4/lib/ruby/1.8/irb.rb:150:in `eval\_input’ from C:/Program Files/NetBeans 6.5 RC2/ruby2/jruby-1.1.4/lib/ruby/1.8/irb.rb:259:in `signal_status' from C:/Program Files/NetBeans 6.5 RC2/ruby2/jruby-1.1.4/lib/ruby/1.8/irb.rb:147:in `eval\_input’ from C:/Program Files/NetBeans 6.5 RC2/ruby2/jruby-1.1.4/lib/ruby/1.8/irb.rb:146:in `eval_input' from C:/Program Files/NetBeans 6.5 RC2/ruby2/jruby-1.1.4/lib/ruby/1.8/irb.rb:70:in `start’ from C:/Program Files/NetBeans 6.5 RC2/ruby2/jruby-1.1.4/lib/ruby/1.8/irb.rb:69:in `catch' from C:/Program Files/NetBeans 6.5 RC2/ruby2/jruby-1.1.4/lib/ruby/1.8/irb.rb:69:in `start’ from C:/Program Files/NetBeans 6.5 RC2/ruby2/jruby-1.1.4\bin\jirb:19

Being so new to this I cannot figure out why it won’t allow me to enter  
a user using all the fields? If I do the same entry without the email  
information to insert it still works.

Thanks in advance!

---

<div class="post-metadata">

**Author:** ![zakifataya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/c89c15/32.png) [@zakifataya](https://www.ruby-forum.com/u/zakifataya)\
**Post date:** [December 19, 2008, 9:39pm UTC](https://www.ruby-forum.com/t/noob-added-a-column-via-migration-but-get-error-on-insert/156057/2 "2008-12-19T21:39:40Z")

</div>

On Fri, Dec 19, 2008 at 12:30 PM, Brian A.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> 1. Created db via Rake
> 2. Created table with 3 columns via Migration (user name:string  
> hobby:string age:integer)
> 3. Inserted 3 user records via Rails Console
> 4. Added additional column via Migration (AddEmailField email:string)  
> (Inside the migration rb → “add\_column :users, :email, :string”

There should be a step 4a) here – rake db:migrate

Did you do that? If so, can you confirm that the table was altered?

> 1. This is where things go poorly, I try to add a new user with the  
> email but get an error. Here is what I enter via Rails Console  
> user = User.new(:name =\> “TommyJones”, :hobby =\> “tennis”, :age =\> 138,  
> :email =\> “removed\_email\_address@domain.invalid”)

And did you restart the console after running the migration?

–  
Hassan S. ------------------------ removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![zakifataya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/c89c15/32.png) [@zakifataya](https://www.ruby-forum.com/u/zakifataya)\
**Post date:** [December 19, 2008, 9:44pm UTC](https://www.ruby-forum.com/t/noob-added-a-column-via-migration-but-get-error-on-insert/156057/3 "2008-12-19T21:44:16Z")

</div>

Hassan S. wrote:

> On Fri, Dec 19, 2008 at 12:30 PM, Brian A.  
> [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> There should be a step 4a) here – rake db:migrate
> 
> Did you do that? If so, can you confirm that the table was altered?
> 
> And did you restart the console after running the migration?

Hello!

Yes I did perform the migrations and can see the new ‘email’ column in  
the database. I did not restart the console however. Does Rails need  
to be restarted to learn about changes like this?

Thanks again.

---

<div class="post-metadata">

**Author:** ![zakifataya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/c89c15/32.png) [@zakifataya](https://www.ruby-forum.com/u/zakifataya)\
**Post date:** [December 19, 2008, 9:48pm UTC](https://www.ruby-forum.com/t/noob-added-a-column-via-migration-but-get-error-on-insert/156057/4 "2008-12-19T21:48:27Z")

</div>

On Fri, Dec 19, 2008 at 12:44 PM, Brian A.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > And did you restart the console after running the migration?

> Yes I did perform the migrations and can see the new ‘email’ column in  
> the database. I did not restart the console however. Does Rails need  
> to be restarted to learn about changes like this?

I believe so – but it should be easy enough to find out, eh? 🙂

Let me know if that doesn’t fix the problem.

–  
Hassan S. ------------------------ removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![zakifataya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/c89c15/32.png) [@zakifataya](https://www.ruby-forum.com/u/zakifataya)\
**Post date:** [December 19, 2008, 9:51pm UTC](https://www.ruby-forum.com/t/noob-added-a-column-via-migration-but-get-error-on-insert/156057/5 "2008-12-19T21:51:52Z")

</div>

Hassan S. wrote:

> I believe so – but it should be easy enough to find out, eh? 🙂
> 
> Let me know if that doesn’t fix the problem.

Thanks! That did the trick. So anytime I make a DB modification and am  
working via the console I need to restart it so it will become aware of  
the changes. Very interesting.

---

<div class="post-metadata">

**Author:** ![zakifataya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/c89c15/32.png) [@zakifataya](https://www.ruby-forum.com/u/zakifataya)\
**Post date:** [December 20, 2008, 6:29am UTC](https://www.ruby-forum.com/t/noob-added-a-column-via-migration-but-get-error-on-insert/156057/6 "2008-12-20T06:29:50Z")

</div>

On Dec 19, 3:51 pm, “Brian A.” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Thanks! That did the trick. So anytime I make a DB modification and am  
> working via the console I need to restart it so it will become aware of  
> the changes. Very interesting.

I believe you can also type app.reload! in the console.

Also, as you go forward with Rails, you might want to consider giving  
jEdit a try as an IDE. It’s powerful, but much easier to work with  
for Rails than are “heavier” programs like NetBeans or Eclipse. See  
[Rails IDE: jEdit wins? - Marnen Laibow-Koser's Journal — LiveJournal](http://marnen.livejournal.com/23723.html) for more info on configuring  
jEdit.

## Best,

Marnen Laibow-Koser  
removed\_email\_address@domain.invalid  
[http://www.marnen.org](http://www.marnen.org)

---

<div class="post-metadata">

**Author:** ![zakifataya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/c89c15/32.png) [@zakifataya](https://www.ruby-forum.com/u/zakifataya)\
**Post date:** [December 22, 2008, 5:40am UTC](https://www.ruby-forum.com/t/noob-added-a-column-via-migration-but-get-error-on-insert/156057/7 "2008-12-22T05:40:10Z")

</div>

On Dec 20, 12:29 am, Marnen Laibow-Koser [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> On Dec 19, 3:51 pm, “Brian A.” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> wrote:
> 
> > Thanks! That did the trick. So anytime I make a DB modification and am  
> > working via the console I need to restart it so it will become aware of  
> > the changes. Very interesting.
> 
> I believe you can also type app.reload! in the console.

I goofed. Just type reload! (without the app. part). Sorry about  
that.

## Best,

Marnen Laibow-Koser  
removed\_email\_address@domain.invalid  
[http://www.marnen.org](http://www.marnen.org)
