omer yavuz
omer yavuz

Reputation: 78

Rails 3 NoMethodError: undefined method `name' for nil:NilClass

Whenever i tried to use

Table.create :a=>"a", :b=>"b"

or

tab=Table.new
tab.a="a"
tab.b="b"
tab.save!

produces

NoMethodError: undefined method `name' for nil:NilClass

my table model is

class Table < ActiveRecord::Base  
 set_table_name "table"
 set_primary_key "id"
end

Upvotes: 0

Views: 1266

Answers (2)

Mike Lewis
Mike Lewis

Reputation: 64167

As everyone has stated, TABLE is a reserved word. For future reference, if you really wanted to use these reserved words, in your sql queries(I know you are using the AR abstraction), you would have to use backticks like so:

SELECT * FROM `TABLE`

However I would highly suggest changing your table name. One other thing to note is that you do not have to set your primary key to id because rails by default uses id for the PK.

Upvotes: 4

fl00r
fl00r

Reputation: 83680

TABLE is reserved word in MySQL.

For more reserved words checkout:

http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

Upvotes: 2

Related Questions