我有3个课程,其中父母是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控制器中,我想要实例化新的电子邮件或短信对象,并通过适当的消息传递通道发送消息。我如何设置我的require语句?我主要熟悉Java,所以我通常只是导入类,但我不确定Ruby的正确方法。
我之前把这三行放在了控制器的顶部:
require "#{Rails.root}/lib/classes/email.rb"
require "#{Rails.root}/lib/classes/sms.rb"
require "#{Rails.root}/lib/classes/messenger.rb"
提前致谢。
答案 0 :(得分:4)
也许您应该考虑将这些内容放在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
语句。