2
假設你有一些郵件程序,但你想要一個動態列表,你將如何去做這件事?如何列出Rails應用程序中的所有郵件程序
該列表包含從ActionMailer::Base
繼承的Rails應用程序中的所有郵件程序類。
假設你有一些郵件程序,但你想要一個動態列表,你將如何去做這件事?如何列出Rails應用程序中的所有郵件程序
該列表包含從ActionMailer::Base
繼承的Rails應用程序中的所有郵件程序類。
> ActionMailer::Base.descendants
=> [Devise::Mailer]
> Dir['app/mailers/*.rb'].each {|f| require File.basename(f, '.rb')}
> ActionMailer::Base.descendants
=> [Devise::Mailer, InternalMailer, MailingListMailer, MessageMailer, UserMailer]
可能有更好的方法。請注意,如果您的郵件程序位於其他位置(或嵌套的目錄中),則需要修改上面的Dir glob。
謝謝。看起來如果你做'Dir ['app/mailers/**/*。rb']'你得到一個可愛的'LoadError:無法加載這樣的文件'錯誤。這足以測試它的目錄並讓你的答案遞歸! – BenMorganIO