Правильный способ создания подкласса Ruby on Rails - PullRequest
0 голосов
/ 29 мая 2018

У меня есть 3 класса с Parent, равным Messenger, например:

class Messenger
    #methods defined here:
end

class Email < Messenger
    #send email and other email related stuff
end

class Sms < Messenger
    #send text messages and other related stuff
end

В моем контроллере Rails я хочу создать экземпляр нового объекта электронной почты или sms и отправить сообщение через соответствующийканал обмена сообщениями.Как мне настроить мои требования?Я в основном знаком с Java, поэтому обычно просто импортирую классы, но я не был уверен в правильном способе Ruby сделать это.

Ранее я поместил эти три строки в верхней части моего контроллера:

require "#{Rails.root}/lib/classes/email.rb"
require "#{Rails.root}/lib/classes/sms.rb" 
require "#{Rails.root}/lib/classes/messenger.rb" 

Заранее спасибо.

1 Ответ

0 голосов
/ 30 мая 2018

Возможно, вам следует подумать о том, чтобы поместить их в каталог с именем messengers в app, например:

- app
  |- messengers
     |- messenger_base.rb
     |- email_messenger.rb
     |- sms_messenger.rb

, а затем определить свои классы следующим образом:

class MessengerBase
  #methods defined here:
end

class EmailMessenger < MessengerBase
  #send email and other email related stuff
end

class SmsMessenger < MessengerBase
  #send text messages and other related stuff
end

IMO,имя типа EmailMessenger понятнее, чем Email.При этом автозагрузка должна работать нормально и не требует require операторов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...