Неопределенная ошибка метода с ассоциацией 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
Другие вопросы по тегам