mam taką sytuację
[code=ruby]class Article < ActiveRecord::Base
has_many :atricle_translations
accepted_nested_attributes :article_translations
end
class ArticleTranslation < ActiveRecord::Base
belong_to :article
validation_presence_of :article_id //uproszczenie walidacji
end[/code]
Walidacja pola article_id jest tak skonstruowana, że pole jest wymagane i unikalny index dla pola locale.
I teraz jak chcę zapisać jakieś translacje artykułu (za pomocą mechanizmu nested attributes) to pojawia mi się błąd walidacji, że element article_id nie istnieje. Do zapisania stosuję:
Article.create(article_translations_attributes: [{title:'aaa', locale: 'en'}])
Nie chciałbym usuwać tej walidacji dla pola article_id, bo ta walidacja zapewnia, że nie będzie kilku tłumaczeń artykułu dla jednego języka
Podobna sytuacja jest w testach (factory_girl) dla zapisu
[code=ruby] factory :art1, class: Article do
article_translations do |t|
[t.association(:art1_pl),
t.association(:art1_en)]
end
end
factory :art1_pl, class: ArticleTranslation do
title “…”
locale “pl”
#article_id nie jest ustawiany
end[/code]