0
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 
4

1 に答える 1

1

この問題を報告していただきありがとうございます。

スクリプトを現在の shoes4 マスターに合わせて調整した後 (たとえば、下位互換性< Shoesのためではなくinclude Shoes)、スクリプトはスタック レベルが深すぎるというエラーを出します。これは、現在の URL システムの動作 (メッセージの転送) に関連しています。URL システムもリファクタリングの準備ができており、次の 7 日以内に行われることを願っています。

shoes4 はまだ開発中であり、プレ アルファ段階であることを覚えておいてください。そのため、まだ生産的な使用の準備ができていません。

将来的には、可視性が向上するため、 shoes4 イシュー トラッカーで問題を報告する運も増えるでしょう。私はたまたま聞いて飛び出しました。私は先に進み、そこに問題を作成しました

これまでの靴を楽しんでいただければ幸いです。

トビ

編集: ところで、一般的に、クラス変数 (@@) の使用は本当に避けるべきです。それらはしばしば奇妙な動作をし、一般的には良い習慣とは見なされませんが、それは実際には問題とは関係ありません

edit2: もう 1 つのことは、Shoes3 に組み込まれているように見えますが、Note クラスが欠落しているように見えることです。互換性を維持するかどうかはわかりません。

于 2013-07-05T12:50:45.033 に答える