tengo 2 modelos, como por ejemplo:rieles has_many, construir, inverse_of
class User < ActiveRecord::Base
has_many :user_services, :inverse_of => :user
validates_length_of :user_services, :maximum => 3
end
class UserService < ActiveRecord::Base
belongs_to :user, :inverse_of => :user_services
validates_associated :user
end
me gustaría hacer algo como:
user_service = user.user_services.build(...)
if user_service.save
...
pero lanza un "nivel de pila demasiado profundo" de error. Supongo que debido a validates_associated combinado con el inverso_of. ¿Alguien sabe por qué pasa esto?
Llamar guardar directamente en el objeto de usuario en lugar de que el objeto user_service parece funcionar, pero me pregunto si hay una manera de lograr esto al revés.
Gracias!
Gracias! Sí, parece estar de alguna manera conectado con este problema que encontré: https://rails.lighthouseapp.com/projects/8994/tickets/5454-use-validates_associated-with-reverse_of-cause-infinite-loop – joelmats
Añadir solución a esto problema circular – Sector
Buena solución. Pero parece que se necesita _Removear número mágico refactoring_: puedes mover la magia ** 3 ** de todas las verificaciones con el método 'User.max_services_allowed'. –