/ / Rails 3 NoMethodError: невизначений метод `name 'для nil: NilClass - ruby, ruby-on-rail-3, activerecord, arel

Rails 3 NoMethodError: невизначений метод `name 'для nil: NilClass - ruby, ruby-on-rail-3, activerecord, arel

Кожного разу, коли я намагався використати

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

або

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

випускає

NoMethodError: невизначений метод name name для нуля: NilClass

Моя таблична модель є

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

Відповіді:

4 для відповіді № 1

Як всі заявили TABLE це зарезервоване слово. Для подальшого використання, якщо ви дійсно хотів використати ці зарезервовані слова у ваших запитах sql (я знаю, що ви використовуєте абстрактну абстрактність AR), вам доведеться використовувати такі зворотні палички:

SELECT * FROM `TABLE`

Однак я би дуже рекомендую змінити назву таблиці. Ще одне слід зауважити, що вам не потрібно встановлювати ваш основний ключ id тому що рейки за замовчуванням використовує id для ПК.


2 для відповіді № 2

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

За більш рефлексивну перевірку слів:

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