未定义方法错误(导轨5)

问题描述:

我试图访问该视图相关联的模型的方法,但得到一个未定义的方法错误未定义方法错误(导轨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 

未定义的方法`cpt_code”的过程:0x007fe7b55518e8

您不必cpt_codeprocedures表。也许你的意思是cpt_code_id

更新:

实际原因是你没有在Procedure模型中定义协会cpt_code

class Procedure < ApplicationRecord 
    has_many :actual_procedures 
    has_many :actuals, through: :actual_procedures 
    belongs_to :cpt_code # you should have this 
end