after_create { |f| if f.target.class.eql?(Question)
if f.target.user != User.current_user
Notify.create_notify( Notify::QUESTION_FOLLOW, f.target.user, User.current_user, f.target)
end
elsif f.target.class.eql?(User)
Notify.create_notify( Notify::USER_FOLLOW, f.target, User.current_user,f.target) if f.target.can_mail_user(:follower)
end
}
Wiem, że lepiej wygląda jako blok
after_create do |f|
if f.target.class.eql?(Question)
if f.target.user != User.current_user
Notify.create_notify( Notify::QUESTION_FOLLOW, f.target.user, User.current_user, f.target)
end
elsif f.target.class.eql?(User)
Notify.create_notify( Notify::USER_FOLLOW, f.target, User.current_user,f.target) if f.target.can_mail_user(:follower)
end
end
Moge go jeszcze przerzucić do osobnej metody z self.
Ale może da się jeszcze coś z tym zrobić ?? Szczególnie mnie interesuje sprawa z tymi ifami.
Zamiast sprawdzać klasy, stwórz w tych klasach metody o takich samych nazwach i umieść w nich ten kod z if i else.
[code=ruby]after_create do |f|
f.target.create_notify
end
class Question
def create_notify
Notify.create_notify(Notify::QUESTION_FOLLOW, user, User.current_user, self)
end
end[/code]
Nie wiem też czy dobrze myślę co chcesz zrobić, ale na 90% nie chcesz mieć w kodzie User.current_user