2

私はRails 3.0.9を使用しています。このテストでは、フィクスチャで定義されたこのHABTM関係が正しく動作しないのはなぜですか?

私はこの器具が定義されている:

treatments.yml

treatment5: 
    id: 5 
    code: T2 
    description: "Inclusión en la política de seguridad directrices para el teletrabajo" 
    reduction: 0.2 
    document: "D01_Politica_Seguridad" 
    account_id: 2 
    soa_lines: soa_line5 

soa_lines.yml

soa_line5: 
    account_id: 2 
    id: 5 
    justification: "El teletrabajo introduce riesgos adicionales que deben gestionarse" 
    control_id: 2 
    applicability: true 
    treatments: treatment5 

そしてモデルがあります:

treatment.rb

has_and_belongs_to_many :soa_lines 

soa_line.rb

has_and_belongs_to_many :treatments 

しかし、テストでは、

treatment = treatments(:treatment5) 
treatment.soa_lines # Returns [] 

はなぜtreatment.soa_linesは[]を返すのですか? HABTMは備品に十分に定義されていませんか?

+0

を、あなたは配列を使用して複数の関連付けを設定することができます[ ] ie: 'soa_lines:[soa_line5、soa_line6]'なぜ、treatment.soa_linesが[]を返すのか答えてください。 – Shadoath

答えて

1

あなたはHABTM上の名前の備品使用したい場合は、あなたのモデルにIDを設定することはできませんので:前方注意点として

treatment5: 
    code: T2 
    description: "Inclusión en la política de seguridad directrices para el teletrabajo" 
    reduction: 0.2 
    document: "D01_Politica_Seguridad" 
    account_id: 2 
    soa_lines: soa_line5 

soa_line5: 
    account_id: 2 
    justification: "El teletrabajo introduce riesgos adicionales que deben gestionarse" 
    control_id: 2 
    applicability: true 
    treatments: treatment5 
関連する問題