Я нашел один способ сделать это, но меня это беспокоит:
alias_method :old_parent=, :parent=
def parent=(value)
self.old_parent = value
if value.subject.start_with?('Re:')
self.subject = "#{value.subject}"
else
self.subject = "Re: #{value.subject}"
end
self.receivers << value.sender
end
Одна вещь, которая мне не обязательно нравится в Rails, это то, что всякий раз, когда вы хотите сделать что-то, что выходит за рамкинемного, но не безосновательно - «как» сильно отличается от того, что придумает ваша интуиция.
Это не проблема, когда вы знаете исключения,но когда вы учитесь, такого рода нерегулярность и непоследовательность в том, как что-либо делать, усложняет изучение, а не упрощение.
Изначально Java может быть сложнее в изучении, но это гораздо более согласованно.Ваша интуиция может продвинуть вас намного дальше, если вы будете думать на Java.Это неправда, если подумать в Rails.Rails - это запоминание вызываемых методов и запоминание действий.В Java вы можете объяснить это намного больше ... и intellisense заполняет все остальное.
Я просто разочарован.Это повторяющийся шаблон для меня - я хочу сделать что-то, что «немного сложнее», чем примеры из фреймворка ... и «как» противоречиво и занимает 30 минут или даже часов, чтобы найти и найти ответ дляэто.