ruby-on-rails - how - rails has and belongs to many
Rails habtm callbacks (1)
¿Hay una manera de agregar devoluciones de llamada para cuando un elemento se agrega a una relación habtm?
Por ejemplo, tengo los siguientes dos modelos, User
y Role
:
# user.rb
class User; has_and_belongs_to_many :roles; end
# role.rb
class Role; has_and_belongs_to_many :users; end
Quiero agregar una devolución de llamada al método <<
( @user << @role
), pero parece que no puedo encontrar una devolución de llamada ActiveRecord porque no hay un modelo para la tabla de combinación (porque es un verdadero habtm).
Soy consciente de que podría escribir un método como add_to_role(role)
, y definir todo allí, pero preferiría usar una devolución de llamada. es posible?
Sí hay:
class User < AR::Base
has_and_belongs_to_many :roles,
:after_add => :tweet_promotion,
:after_remove => :drink_self_stupid
private
def tweet_promotion
# ...
end
def drink_self_stupid
# ...
end
end
Busque "devoluciones de llamada de asociación" en esta página para obtener más información: http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html