У меня проблема. Я разрабатываю приложение Rails и столкнулся с проблемой, которую я не могу исправить.Rails 2-сторонняя ассоциация не работает
На данный момент мое приложение позволяет пользователям вводить данные о продукте в базу данных (хранится в «таблице продуктов»). Вот схема для используемой базы данных.
ActiveRecord::Schema.define(version: 20140126073333) do
create_table "ijns", force: true do |t|
t.integer "number"
t.integer "product_id"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "quantity"
end
add_index "ijns", ["number"], name: "index_ijns_on_number"
create_table "products", force: true do |t|
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "ijn_id"
end
add_index "products", ["name"], name: "index_products_on_name"
end
Существует еще одна таблица под названием «ijns», которая присваивает каждому идентификатору уникальный идентификатор. Этот ijn не был сделан первичным ключом намеренно, так как я не хочу, чтобы он был автоматически увеличиваемым значением.
Соотношение ч/б и IJN Товар:
продукт, has_many ijns и IJN belongs_to одного продукта.
Вот моя модель продукта
class Product < ActiveRecord::Base
has_many :ijns
validates :name, presence: true, length: { minimum: 10 }, uniqueness: true
end
модели для IJN.
class Ijn < ActiveRecord::Base
belongs_to :product
validates :number, presence: true, uniqueness: true, length: { is: 4 }, numericality: { only_integer: true }
validates :product_id, presence: true
validates :quantity, presence: true
end
Я смог получить ассоциацию со стороны IJN, то есть, я могу получить доступ к полям модели продукта, используя что-то вроде:
@ijn.product.name
Но я не чтобы получить доступ к полю 'number' таблицы ijns из модели продукта
Надеюсь, я ясно объяснил свою проблему. Пожалуйста, дайте мне знать, если требуется дополнительная информация. С нетерпением жду некоторых ответов! :)
первый Edit:
Когда я смотрю на моем столе "продукции в браузере базы данных sqlite3, столбец для ijn_id существует, но по какой-то причине нет записей. Вот скриншот:
Что вы пробовали? Если вы напишете '@ product.ijns', что вы получите? «NoMethodError» или что-то еще? –
Да, Робин, я получаю NoMethodError – vjrngn