問題タブ [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.
programming-languages - 他の言語で Ruby の method_missing に相当するものはありますか?
Ruby では、オブジェクトには、method_missing
(明示的に) 定義されていないメソッドのメソッド呼び出しを処理できる便利なメソッド called があります。
obj が処理できないメッセージを送信されたときに、Ruby によって呼び出されます。symbol は呼び出されたメソッドのシンボルで、args はそれに渡された任意の引数です。デフォルトでは、このメソッドが呼び出されると、インタープリターはエラーを発生させます。ただし、メソッドをオーバーライドして、より動的な動作を提供することは可能です。以下の例では、ローマ数字で構成される名前のメソッドに応答して、対応する整数値を返すクラス Roman を作成します。
たとえば、Ruby on Rails はこれを使用して、 などのメソッドの呼び出しを許可しますfind_by_my_column_name
。
私の質問は、他にどの言語が に相当するものをサポートしているmethod_missing
か、そしてコードに同等のものをどのように実装しているのかということです。
ruby-on-rails - method_missingなしでRailsでSEOフレンドリーなURLを取得しますか?
現在、変数の考えられるすべての値に対してアクションを作成するのではなく、method_missingを使用してコントローラーでSEOに適したアクションの呼び出しをキャッチしています。必要なのは次のようなURLです。
/ student / BobSmith
/ student / show/342ではありません
method_missingよりもクリーンな解決策はありますか?
ありがとうございました!
scala - scalaにmethod_missingはありますか?
Rubyのものに似ています
ruby-on-rails - `is_x?` を `has_role? にエイリアシングするのが難しい x`
各ユーザーには多くの役割があります。ユーザーが「管理者」ロールを持っているかどうかを確認するには、次のhas_role?
メソッドを使用できます。
some_user.has_role?('admin')
これは次のように定義されています。
some_user.has_role?('admin')
のように書けるようにしたいsome_user.is_admin?
ので、次のようにしました。
このsome_user.is_admin?
場合は問題なく動作しますが、別の関連付けで参照されているユーザーで呼び出そうとすると失敗します。
何を与える?
powershell - powershell には method_missing() がありますか?
私はpowershellの動的機能をいじっていましたが、何か疑問に思っていました
オブジェクトの存在しないメソッドへの呼び出しを動的に処理するために「すべてのメソッドをキャッチ」を設定できる、Ruby の method_missing() に類似したものは powershell にありますか?
php - PHPのグローバルな「method_missing」?
__call() を実装して、PHP クラスで method_missing 動作を提供できます。グローバルスコープで同じ機能を提供する方法はありますか?
私はこのようなものが欲しい:
出力:
ruby - Ruby、Date.day_fraction_to_timeから時、秒、時間を取得
この方法はこちらで見つけました。
次のエラーがあります。
/usr/lib/ruby/1.9.1/date.rbを確認したところ、次のことがわかりました。
でも ruby1.8 で動かせば問題ない。/usr/lib/ruby/1.8/date.rbは私に与えます:
だから私はドキュメンテーション(1.9)を見に行きましたが、この方法の痕跡はありません。ばかげた質問だとは思いますが、なぜ彼らはそれを削除したのですか? /usr/lib/ruby/1.9.1/date.rbには、メソッドの使用方法に関する次の例もあります。
しかし、私はまだエラーが発生しています:
ruby - Ruby:method_missingでメソッドタイプを見つける最良の方法は何ですか?
現時点で私はこのコードを持っています:
しかし、それは最善の解決策ではないようです= \
それをより良くする方法はありますか?ありがとう。
ruby - 静的に型付けされた言語がRubyのmethod_missingのようなものを持つことを妨げるものは何ですか?
私は静的に型付けされた言語(現在Scalaを学び、それを愛している!)の経験はあまりありませんが、Rubyのmethod_missingやColdFusionのonMissingMethodのようなものがないように見えることに気づきました。静的に型付けされた言語には、これを防止または困難にする固有の制限がありますか?
ruby-on-rails - method_missing の複数の引数
モデルに次のmethod_missing
コードを実装しています。
$CLIENT
グローバルオブジェクトです。これはインスタンスではなく、クラスmethod_missing
に対するものであることに注意してください。
スクリプト/コンソールで次のことを試しました:
ここで私が見逃している痛ましいほど明白なものはありますか? Rails 2.3.8とjRubyでこれを実行していますが、それが違いを生む場合。
編集:これは私をさらに混乱させます:
2 番目の引数を Integer 以外のものに置き換えるとうまくいくように見えますが、もちろん引数は Integer である必要があります... jRuby またはこれに統合した Java クラスのいずれかに問題があるのではないかと疑っています。