未定义方法错误(导轨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_code
在procedures
表。也许你的意思是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