Почему это отношение HABTM, определенное в приборах, не работает должным образом в этом тесте? - PullRequest
2 голосов
/ 02 августа 2011

Я использую Rails 3.0.9.

У меня есть определенные настройки:

treatment.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 плохо определен в приборах?

1 Ответ

1 голос
/ 02 августа 2011

Поскольку вы не можете установить id на вашей модели, если хотите использовать именованные приборы на HABTM :

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
...