我通过快捷方式使用rails has_many实现了多对多的关联。
我的模型叫做:
他们是这样定义的:
class StatusTransacaoPagSeguro < ActiveRecord::Base
has_many :historicos
has_many :clientes, through: :historicos
end
class Cliente < ActiveRecord::Base
has_many :historicos
has_many :status_transacao_pag_seguros, through: :historicos
end
class Historico < ActiveRecord::Base
belongs_to :cliente
belongs_to :status_transacao_pag_seguro
end
我有以下历史记录:
#<Historico id: 1, cliente_id: 3, status_transacao_pag_seguros_id: 3, created_at: "2014-06-01 19:44:42", updated_at: "2014-06-01 19:44:42">
当我跑
时historico.cliente
我得到了相关的&#39; cliente&#39;记录,但是当我跑步时
historico.status_transacao_pag_seguro
我 nil 。
问题出在哪里?我正确地定义了复数?由于这些名称是葡萄牙语,我认为它存在一些问题,但我不知道如何克服它。
答案 0 :(得分:1)
您在历史剧表中的status_transacao_pag_seguro的FK错误。它应该是status_transacao_pag_seguro_id
(没有s
)。通过以下迁移,您应该很高兴:
def change
rename_column :historicos, :status_transacao_pag_seguros_id, :status_transacao_pag_seguro_id
end