問題タブ [alias-method-chain]

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 に答える
1090 参照

ruby-on-rails - 開発モードの Ruby on Rails で alias_method_chain を使用するカスタム ヘルパー [REDMINE]

プラグインで Redmine コードをクリーンに保つために、alias_method_chain の原則を使用して Redmine のメソッドをカスタマイズしたいのですが、問題が発生しlink_to_issueます。application_helper

まず、パッチファイルは次のapplication_helper_patch.rbとおりです。

そしてinit.rbプラグインの:

このソリューションは、プロダクション モードでは完全に動作しますが、開発モードでは動作しません。アプリケーションを起動すると、次の問題が発生します。

call_hook開発モードでメソッドが未定義なのはなぜですか?

ありがとう

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

ruby-on-rails - alias_method_chain を使用した未定義のメソッド

私のモデルには属性 html があります。setter html= で alias_method_chain を使用しようとすると、エラーが発生しますundefined method `name=' for class `Banner' But I use alias_method_chain with another attribute.

メソッドが定義されています

0 投票する
0 に答える
153 参照

ruby-on-rails - Ruby on Railsでalias_method_chainにエイリアスを追加するには?

次のエイリアスメソッドがあります。

上記のメソッドのエイリアス メソッド チェーンを宣言しようとしています。

エイリアス メソッド チェーンにエイリアスを使用するより良い方法はありますか?

PS: 同じエイリアス メソッドに対してエイリアス メソッド チェーンを 2 回宣言するのは好きではありません。

0 投票する
0 に答える
98 参照

ruby-on-rails - インクルード/拡張されるモジュールの先頭に追加

から に移行してModule#alias_method_chainModule#prependます。

しかし、同じ機能を実現できない状況が 1 つあります。

ライブラリ コードがあるとします (実際には 2 つのライブラリがあり、そのうちの 1 つは別のライブラリを拡張します)。

ここで、5 を返したいobject#random_numberとします。私の古いコードは

これを模倣するにはModule#prepend

望ましい結果は、2 つのアプローチによって達成できます。

  • Extender.prepend Prepender 前に 呼び出すobject.extend Extender(外部ライブラリのコードを制御できないため、オプションではありません)
  • object.extend Prepender の代わりに呼び出します (オブジェクトは外部に表示されないExtender.prepend Prependerため、オプションではありません)object

何かアドバイス?