問題タブ [method-missing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
354 参照

ruby-on-rails-3 - `method_missing': 未定義のメソッド `user_class=' #

Railsサーバーを実行すると、このエラーが発生しました。「bundle install」は成功しました。私の RVM は ruby​​ 1.9.3 と rails 3.2 を使用していますが、プロジェクトには rails 3.1 が必要です。何でも助かります。ありがとうございます。バンドルが完成しました。./vendor/bundle にインストールされました

0 投票する
2 に答える
1973 参照

ruby-on-rails - Rails で動的にクラス メソッドを定義する

次のように、Rails で動的にクラス メソッドを定義します。

find_by_SOME_SCHOOL_idこれらの学校を で事前に定義しなくても、missing メソッドを使用して呼び出すにはどうすればよい%w[school1 school2]ですか?

0 投票する
2 に答える
888 参照

ruby - メタプログラミング: method_missing と __send__

Ruby の奇妙な点を見つけました。method_missing/を使用して、カーネルが同じメソッドを定義している場合、失敗しrespond_to_missing?て開始されたメソッド呼び出しを動的に処理します。__send__

Kernel.systemどういうわけか混ざり合っています。ここで何が起こっているか知っている人はいますか?:system「メッセージ」が Testerize インスタンスに投稿され、ヒットし、出来上がりを期待していたでしょうmethod_missing。直接呼び出しを使用しているときmethod_missingに使用すると呼び出されないのはなぜですか?__send__

関連する場合は、Ruby 1.9.3 を使用しています。

0 投票する
2 に答える
192 参照

ruby-on-rails - ActionMailer::Base でのメタプログラミング

私は実際に、新しいメーリング リストをオンザフライで作成し、テンプレートをアップロードして、そのリストから次のような方法で購読者に電子メールを送信できるニュースレター マスメーリング ソフトウェアを作成しています。

(遅延方法は、バックグラウンド ジョブに sidekiq を使用しているためであることに注意してください)

このロジックを処理するために、NewsletterMailer クラス内の ActionMailer::Base から method_missing をオーバーライドしようとしましたが、実行されないようです。「NewsletterMailer:Class の未定義メソッド `testing_newsletter'」という NoMethodError を受け取りました。

ActionMailer::Base#method_missing ソース コードを調べたところ、既にいくつかのロジックが実行されていることがわかり、new を呼び出さずに Mailer.name_of_the_email.deliver を実行できるようになりました。また、このメソッドは保護されています。

しかし、NewsletterMailer クラス内にハードコーディングされていないメソッドからメールを送信する方法はありますか? メソッドを ActionMailer コントローラに動的に追加する方法はありますか?

どうもありがとう。

0 投票する
1 に答える
681 参照

ruby - 最上位オブジェクトで method_missing を定義できません

(スクリプトをロードしてpryに入力するだけで)pryでmethod_missingを定義しようとすると、コンソール(Windows XPのcmd)に終了します。
IRB で入力しようとすると、無限ループに入るか、スクリプト (irb m.rb) を読み込もうとすると、次のように表示されます。

コンソール(cmd)に終了しますこれ
が私のコードです:

他の何かを返すと、無限ループにはなりませんが、代わりにエラーが表示されます(最初の数行のみが変更されています):
番号:

弦:

0 投票する
1 に答える
379 参照

function - コメントを外すとAngularJS関数が未定義になる

スコープ内のメソッドの定義に関連するいくつかの奇妙な問題があります。定義したら、それを呼び出したいときに (コードに入力するだけで) 消えます。私はコードのこの部分を持っています

今、何か奇妙なことが起こります。見えますか:

私が持っているとき:

コメントしました firebug でメソッドを見ることができます。コメントを外すと、未定義になります...

誰かが同様の問題を抱えていましたか?

ノート:

この方法ですか:

0 投票する
3 に答える
344 参照

ruby - Ruby のネストされた const_missing method_missing スタックが深すぎます

私は次のクラスを持っています:

次のようにラッパーを呼び出すことができるようにしたい:

スタック レベルが深すぎるというエラーが表示されます。

私は何を間違っていますか?

0 投票する
3 に答える
984 参照

ruby - Ruby -- 強制的に method_missing *args をハッシュにしますか?

クラスの 1 つに method_missing 関数を定義したいのですが、配列ではなく引数リストとしてハッシュを渡すことができるようにしたいと考えています。このような:

私の知る限り、引数リストは配列として渡されるため、キーが削除され、どの引数がどれであるかを知る方法がありません。Ruby に method_missing の引数リストをハッシュとして扱わせる方法はありますか?