Rails has_one关联的未定义方法错误(Rails 5)

时间:2017-07-06 16:23:38

标签: ruby-on-rails ruby model-associations

我试图在视图中访问关联模型的方法,但是获取未定义的方法错误

  

程序的未定义方法`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 个答案:

答案 0 :(得分:1)

  

未定义的方法`cpt_code&#39;程序:0x007fe7b55518e8

您在AxShockwaveFlash表格中没有cpt_code。也许你的意思是procedures

<强>更新

实际原因是您没有为cpt_code_id模型中的cpt_code定义关联

Procedure