Rails 3 NoMethodError: неопределенный метод `name 'для nil: NilClass - PullRequest
0 голосов
/ 17 апреля 2011

Всякий раз, когда я пытался использовать

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

или

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

, выдает

NoMethodError: неопределенный метод `name 'для nil: NilClass

модель моего стола

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

Ответы [ 2 ]

4 голосов
/ 18 апреля 2011

Как все говорили, TABLE - зарезервированное слово.Для дальнейшего использования, если вы действительно хотели бы использовать эти зарезервированные слова, в ваших SQL-запросах (я знаю, что вы используете абстракцию AR), вам придется использовать обратные пометки, например, так:

SELECT * FROM `TABLE`

Однако я бы настоятельно рекомендовал изменить имя вашей таблицы.Еще одна вещь, на которую следует обратить внимание: вам не нужно устанавливать первичный ключ на id, потому что rails по умолчанию использует id для PK.

2 голосов
/ 18 апреля 2011

TABLE зарезервированное слово в MySQL.

Для более зарезервированных слов оформить заказ:

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

...