У меня проблема. У меня есть модель пользователя:STI: Неизвестный атрибут в рельсах 4
class User < ActiveRecord::Base
end
модель Подрядчика которая унаследовала от пользователя
class Contractor < User
has_many :contractorEs
has_many :customers
end
и модель клиента, который унаследовал от пользователя
class Customer < User
belongs_to :contractor
has_many :customer_es
end
В моей таблице Customers У меня есть столбец "contractor_id" , Тогда я rails c
и тип:
c = Contractor.first
c.customers.build
И unknown attribute: contractor_id
произошло. Тогда я типа:
customer = Customer.new
и есть:
<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">
но нет в списке нет contractor_id
. Как это решить? Я использую рельсы 4 и ruby 2.0.
У меня уже есть contractor_id в таблице моих клиентов. Он добавляется в модель создания. – cnaize
Мы не видим его в вашем файле Customer.new, который представляет собой только строку пользователя в db. См. Второй ответ. У вас нет столбца contractor_id. – TheIrishGuy
вам нужно добавить отдельный столбец для самореференции, вы не можете полагаться только на первичные ключи, вам нужен внешний ключ и настройка атрибутов в ассоциациях. – TheIrishGuy