0

通过 has_many 链接的三个模型:通过

class Bozza < ActiveRecord::Base
  has_many :accessoryvolumes, :dependent => :destroy
  has_many :accessories, through: :accessoryvolumes
  belongs_to :lavorazione

class Accessory < ActiveRecord::Base
  has_many :accessoryvolumes
  has_many :bozzas, through: :accessoryvolumes

class Accessoryvolume < ActiveRecord::Base
  belongs_to :accessory
  belongs_to :bozza

在 bozza 的视图中,可以访问 bozza 的属性

<% @bozza.accessoryvolumes.each do |accessoryvolume| %>
  <%= accessoryvolume.numero %> 
  <%= accessoryvolume.bozza_id %> 
  <%= accessoryvolume.bozza.lavorazione.name %>
  <%= accessoryvolume.accessory_id %> 
  <%= accessoryvolume.accessory.name %>

保存最后一项。与附件的关系的任何属性都会生成和

nil:NilClass 的未定义方法“名称”

埃文虽然附件ID 有一个值。一个实例中的相关属性如何被拾取而不是另一个?

4

1 回答 1

0

问题在于“附件”的复数处理。这是一个令人讨厌的怀疑好几个小时......

这个问题出现的比较频繁。小马起来,想出一个不会被rails或某人错误解释的名字,不知何故,某处。避免使用不规则复数形式的名词。在处理外语时更是如此。

现在

class Accessorio < ActiveRecord::Base
  has_and_belongs_to_many :lavoraziones
  has_many :accessoryvolumes
  has_many :bozzas, through: :accessoryvolumes

<%= accessoryvolume.accessorio.nome %>

按预期运行

于 2013-08-12T21:42:08.123 回答