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層次結構以解決問題的任何指導。