Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Оплошность: Unknown attribute в ActiveRecord(ruby). Как поправить?

Anna | 20.06.2014 | нет комментариев

Есть следующие модели:

class Contractor < User
  has_many :contractorEs
  has_many :customers
end

class Customer < User
  belongs_to :contractor
  has_many :customerEs
end

Есть миграция:

class AddContractorIdToCustomers < ActiveRecord::Migration
  def change
    add_column :customers, :contractor_id, :integer
  end
end

Пробую сделать кастомера (Сustomer), для этого захожу в консоль и делаю следующее:

c = Contractor.first
c.customers.build

Взамен сделанного кастомера получаю следующее сообщение об ошибке:

ActiveRecord::UnknownAttributeError: unknown attribute: contractor_id

Миграцию запускал, сервер рестартовал. Задача, к сожалению, остается.
Подскажите, пожалуйста, с чем это может быть связано и как это поправить.

Лучи добродушна вам :)

UPD: Ruby 2/Rails 4
UPD 2: Я использую STI, все наследуется от User-a. Может быть задача связана с этим?
UPD 3: Продолжаю изучать загвоздку. Выяснилось, что создании модели через Customer.new в полях нет contractor_id:

<Customer id: nil, first_name: nil, last_name: nil, address: nil, country: nil, zip: nil, city: nil, phone: nil, company_name: nil, signature: nil, type: "Customer", created_at: nil, updated_at: nil, v_token: nil, password_digest: nil, u_token: nil, email: nil, state: "new">

Если я наследую Customer от ActiveRecord::Base, то все работает типично. Но мне нужно наследовать от User.

Источник: programmingmaster.ru
Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB