0

has_many :through でリンクされた 3 つのモデル

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 の未定義のメソッド `name'

accessories_id には値がありますが、evan です。あるインスタンスの関連属性がどのように取得され、他のインスタンスは取得されないのですか?

4

1 に答える 1

0

問題は「accessory」の複数形の扱いです。それは何時間にもわたる厄介な疑いでした... .

この問題はかなり頻繁に発生します。ポニーアップして、レールや誰かが間違って解釈できない名前を、どういうわけか、どこかで考え出します。不規則に複数形になる名詞は避けてください。外国語を扱うときはさらに。

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 に答える