Я очень новичок в рельсах. У меня есть одна до многих ассоциаций. Таблица1 с несколькими полями. Одно поле - это название, а еще один заголовок ccode. Таблица 2, как только имеет только 2 поля, первое поле также является местоположением, а второе - также ccode. Эта таблица предназначена для хранения моего местоположения. В таблице 1, когда я создаю объект, я назначаю код, и я хочу получить соответствующее местоположение в коде c2 из таблицы2. Таблица 2 has_many Таблица 1 и Таблица 1 принадлежит_ таблице2. Также я хочу показать местоположение в моем индексном представлении в теге <table>
. Я думаю, что мой код просмотра выглядит так же, как в примере, который я нашел, и я достаточно хорошо понимаю html. Проблема, которую я получаю, заключается в том, что мой объект Table2 возвращает nil.Рубин на рельсах одно для ассоциации
Вот как выглядит моя модель для Table1.
class Table1 < ActiveRecord::Base
belongs_to :table_2
require 'csv'
def self.import(file)
CSV.foreach(file.path, headers: true, row_sep: :auto, col_sep: "\t") do |row|
Table1.create! row.to_hash
end
end
end
Вот как выглядит моя модель для Table2.
class Table2 < ActiveRecord::Base
self.table_name = 'table_2'
self.primary_key = 'ccode'
has_many :table1
end
Вот что выглядит Table1Controller как
class FinancialsController < ApplicationController
def index
@financials = Financial.all
end
def create
@financial_loc_ccode = FinancialLocCcode.create(location_code: params[:location_cd], ccode: @financials.ccode)
end
end
У меня нет контроллера TABLE2, все делается в контроллере Table1, я предполагаю, что это потому, что, когда я начал этот проект был уже стол созданный для Table2.
Как я уже говорил, я очень новичок в рельсах и все еще изучаю связи между моделями и контроллерами, а также как манипулировать данными и хорошо показывает его в html.
Любая помощь будет высоко оценена.
Каков ваш вопрос, в частности? – jvillian
Так ваша конкретная проблема, что ассоциация не происходит? Вы упомянули, что Таблица 2 возвращала нуль. Когда? Когда вы создаете объекты table1, вы передаете им строку ... вы также передаете им идентификатор Table2? Если нет ... то связь с объектом Table2 никогда не происходит. – toddmetheny