0
假设形式的method_option:托尔 - 如何使用lambda函数对method_options表达默认值
method_option :host_domain, aliases: '-h', default: 'some value'
能一个不平凡的lambda函数到位“一些价值”导出默认使用运行时的价值。
一些小事,如:
method_option :host_domain, aliases: '-h', default: -> { 'some value'.upcase}.call
工作正常。
然而,这样的:
method_option :host_domain, aliases: '-h', default: -> { Model.method}.call
不会因为它不能找到模型实例(这是在app/lib中/模型定义&已事先加载)。它也似乎在module_option语句中,Thor类尚未初始化。我想从此挂起一个故事。
此外,在方法def new中,遵循method_option语句,我可以引用Model与out问题。我还注意到,在新方法进入之前,Thor类已经初始化(如您所期望的那样)。
希望了解如何浏览Thor层次结构以解决问题的任何指导。