【问题标题】:Undefined method error with Rails has_one association (Rails 5)Rails has_one 关联的未定义方法错误(Rails 5)
【发布时间】:2017-07-06 16:23:37
【问题描述】:

我正在尝试访问视图中关联模型的方法,但出现未定义的方法错误

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

。感谢您的帮助!

索引视图:

<% @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

【问题讨论】:

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


    【解决方案1】:

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

    procedures 表中没有 cpt_code。也许你的意思是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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-14
      • 1970-01-01
      • 1970-01-01
      • 2017-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多