ОК, я в тот момент в моей рубиновой карьере, где это должно меня отключить.контроль доступа отключил меня
У меня есть модель под названием distribution.rb
, где у меня есть follwoing защищенный метод:
def update_email_sent_on_date
if self.send_to_changed?
self.date_email_delivered = DateTime.now
end
end
Я тогда этот метод вызывается из моего контроллера:
distribution.update_email_sent_on_date
однако, я получаю это ошибка:
NoMethodError (protected method `update_email_sent_on_date' called for #<EmailDistribution:0x131a1be90>):
объект distribution
действительно является распределением электронной почты (подкласс распределения, в котором определяется метод). I мысль это будет работать. В любом случае я также попытался переместить метод в подкласс EmailDistribution
, но не повезло. Такое же сообщение об ошибке.
Я также хотел бы отступить и сказать, что то, что я пытаюсь сделать в целом, это сохранить временную метку, когда обновляется другое поле в модели распределения. Если есть более простой способ, пожалуйста, просветите меня.
благодарит за помощь! – Ramy
Рад помочь, приятель. Я немного смутился о том, как Ruby обрабатывает «private» и «protected», когда я начал работать с наследованием в Ruby, потому что он обрабатывает эти термины по-другому, чем обычные языки, на которых мой фон находится. Я предполагаю, что вы находитесь в такой же лодка. – Batkins
Точно. Между Java и Python, Ruby просто достаточно разный, чтобы запутать. – Ramy