Неопределенная ошибка метода с ассоциацией Rails has_one (Rails 5)
Я пытаюсь получить доступ к методам связанной модели в представлении, но получаю неопределенную ошибку метода
неопределенный метод `cpt_code'для процедуры:0x007fe7b55518e8
, Спасибо за вашу помощь!
индекс просмотра:
<% @actuals.each do |actual| %>
<% if actual.procedures.present? %>
<% actual.procedures.each do |procedure| %>
<tr>
<td><%= procedure.cpt_code.id %></td>
<td><%= procedure.description %></td>
</tr>
<% end %>
<% end %>
<% end %>
контроллер:
def index
@actuals = Actual.all
end
Модели:
class Actual < ApplicationRecord
has_many :actual_procedures, :dependent => :destroy
has_many :procedures, through: :actual_procedures
class ActualProcedure < ApplicationRecord
belongs_to :procedure
belongs_to :actual
end
class Procedure < ApplicationRecord
has_many :actual_procedures
has_many :actuals, through: :actual_procedures
end
class CptCode < ApplicationRecord
has_one :procedure
Процедуры в схеме:
create_table "procedures", force: :cascade do |t|
t.bigint "cpt_code_id"
t.string "code"
t.string "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["cpt_code_id"], name: "index_procedures_on_cpt_code_id"
end
1 ответ
Решение
неопределенный метод `cpt_code'для процедуры:0x007fe7b55518e8
У вас нет cpt_code
в procedures
Таблица. Возможно, вы имели в виду cpt_code_id
,
Обновить:
Фактическая причина в том, что вы не определили ассоциацию для cpt_code
в Procedure
модель
class Procedure < ApplicationRecord
has_many :actual_procedures
has_many :actuals, through: :actual_procedures
belongs_to :cpt_code # you should have this
end