While calling method inside button block in SHoes4 it throws error undefined local variable or method `get_notes' . But when i call inside action it works fine,
Code:
class ShoesApp
include Shoes
url '/', :index
def index
para 'Say something...'
flow do
@note = edit_line
button 'OK' do
Note.new(:message => @note.text).save
@note.text = ''
@@result.replace get_notes # error
end
end
@@result = para get_notes # Works fine
end
def get_notes
Note.all.map(&:message).join("\n")
end
end
Shoes.app :title => 'Notes', :width => 260, :height => 350
1 に答える
この問題を報告していただきありがとうございます。
スクリプトを現在の shoes4 マスターに合わせて調整した後 (たとえば、下位互換性< Shoes
のためではなくinclude Shoes
)、スクリプトはスタック レベルが深すぎるというエラーを出します。これは、現在の URL システムの動作 (メッセージの転送) に関連しています。URL システムもリファクタリングの準備ができており、次の 7 日以内に行われることを願っています。
shoes4 はまだ開発中であり、プレ アルファ段階であることを覚えておいてください。そのため、まだ生産的な使用の準備ができていません。
将来的には、可視性が向上するため、 shoes4 イシュー トラッカーで問題を報告する運も増えるでしょう。私はたまたま聞いて飛び出しました。私は先に進み、そこに問題を作成しました
これまでの靴を楽しんでいただければ幸いです。
トビ
編集: ところで、一般的に、クラス変数 (@@) の使用は本当に避けるべきです。それらはしばしば奇妙な動作をし、一般的には良い習慣とは見なされませんが、それは実際には問題とは関係ありません
edit2: もう 1 つのことは、Shoes3 に組み込まれているように見えますが、Note クラスが欠落しているように見えることです。互換性を維持するかどうかはわかりません。