Mon modèle utilisateur a de nombreuses adresses comme ceci :
class User < ApplicationRecord
has_many :addresses, dependent: :destroy
accepts_nested_attributes_for :addresses, allow_destroy: true
end
class Address < ApplicationRecord
belongs_to :user
validates :address_line_1, :city, :state, :zip, presence: true
end
Le modèle Address
a également une colonne address_type
pour signifier soit une adresse travail
ou domestique
.
Lorsque j'ai essayé de sauvegarder les deux adresses avec des erreurs, je reçois quelque chose qui me semble étrange :
a = User.last
a.addresses # Cet utilisateur a à la fois une adresse à domicile et une adresse de travail
=> #, #
Comme vous pouvez le voir ci-dessus, Rails n'a fourni qu'une seule erreur lorsque les deux adresses sont invalides ont cette même erreur. Je ne peux pas dire en regardant cela si les deux sont invalides ou juste une seule, et je ne peux pas dire laquelle a l'erreur. Y a-t-il un moyen de fournir un message d'erreur plus détaillé, peut-être quelque chose comme ceci :
{:"work_address.address_line_1"=>[{:error=>:blank}], :"home_address.address_line_1"=>[{:error=>:blank}]}
Ou au moins inclure l'identifiant de l'objet :
{:"addresses.address_line_1"=>[{:error=>:blank, :ids=>[1,2]}]}