問題タブ [activesupport-concern]

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 投票する
2 に答える
7647 参照

ruby-on-rails - 引数を取るRails 4の懸念を作成する方法

User という ActiveRecord クラスがあります。私は、Restrictable次のようないくつかの引数を取るという懸念を作成しようとしています:

restricted_data次に、これらの引数に対して何らかの操作を実行してデータを返すことができる、呼び出されるインスタンス メソッドを提供したいと考えています。例:

どうすればそれを行うことができますか?

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

ruby-on-rails - Rails 4 エンジンから ActionController::Base を拡張する

Rails 4エンジンから拡張しようとしているActionController::Baseので、それをマウントするアプリは各アクションの前に特定のメソッドを実行します。これを行うには、懸念class_evalやオープンクラス化など、いくつかの異なる方法がある可能性があることを理解しましたが、私はこれについてまったく新しいものであり、見つけたリンクは主にメインアプリからエンジンコントローラーを拡張する方法ではなく、エンジンコントローラーを拡張する方法に関するものでした。私がしようとしているように周りの道。

これは私が試したことです。次のように、エンジンのコントローラーフォルダーに新しいフォルダーを作成しました。

そして、base_controller.rb私は以下を追加しました:

これは機能しません。ロードされていないためだと思ったので(レールエンジンでこのようなカスタムコードを配置する方法と場所をまだ理解しようとしています)、そのコードをmy_engine/lib/my_engine/engine.rbファイルにコピーしようとしましたが、次のエラーが発生しましたサーバーの起動時:

どうすればこれを達成できますか? また、ファイルをどこに正しく配置すればよいですか?

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

ruby-on-rails - ActiveSupport::Concern を使用してクラス メソッドを継承する方法

私の Ruby on Rails アプリケーションには、クラスの小さな階層があります。子クラスに継承させたい情報を含むクラスを記述するサポートに懸念を追加しようとしました。この問題は、次の小さなサンプルで説明できます。

このサンプル コードを返してほしい

残念ながら、ChildItem と AnotherItem は、親クラスに設定されたクラス「プロパティ」を追加せず、代わりに戻ります

クラスの継承を希望どおりに機能させるにはどうすればよいですか?

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

ruby-on-rails-4 - モデルの懸念モジュールと共有されるコントローラの懸念モジュール?

controllers/concerns フォルダーに FooConcern モジュールを作成し、models/concerns に FooConcern モジュールを作成すると、オーバーライドの問題が発生しますか、それとも disinct モジュールのように使用できますか?

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

ruby-on-rails - rails - 懸念される検証の問題

懸念される検証に問題があります クラス
/app/models/group.rbがあります

/app/models/concerns/localized/title.rb

モデルで検証を使用しようとすると、機能しますが、問題はありません。助けてください、私は何が間違っていますか?

PS AbstractModel < ActiveRecord::Base、rails 4.2、ruby 2.2.0p0

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

ruby-on-rails - Rails 4.2 の懸念内容がテスト環境で無視される

私は本当に奇妙な問題で立ち往生しています。最近、Rails 4.1 から 4.2 に更新しました。4.1 では、すべて正常に動作しました。しかし現在、4.2 では、懸念が見つかったとしても、モデルの懸念の内容は無視されているようです。

簡単に言えば。懸念事項で定義されている関係にClient属するモデルがあります。AddressAddressable

アプリ/モデル/client.rb

アプリ/モデル/アドレス.rb

アプリ/モデル/懸念/addressable.rb

development環境には問題ありません。問題なくできClient.new.addressます。しかし、test環境では、同じ行でunknow method addressエラーが発生します。そこに移動belongs_to :addressするとClient、再び機能します。モジュールが含まれているのは、これに関するエラーがないためです。名前を変更するとAdressabledewdewded、もちろんエラーが発生します。

検証方法などでも同じことが起こります。

これをデバッグしていますが、ルートが見つかりません。development.rbasをコピーtest.rbしてサーバーを再起動しましたが、まだです。新しく作成した Rails 4.2 アプリケーションでこれを再現することはできないため、アプリケーションまたは更新プロセスに何らかの関係があるはずですが、どこにあるのかわかりません。

誰にも手がかりがありますか?

ありがとう

アップデート

Client.new.addressこれは、テスト環境のコンソールで実行した場合のスタック トレースです (開発中は動作します)。

アップデート

両方の環境での結果はClient.ancestors次のとおりです (もちろん、インスタンス ID のみの違いはありません)。

そして、それをClient.reflections.keys行うaddressと、開発では表示されますが、テストでは表示されません。

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

ruby-on-rails - Rails 4 の問題: クラスのインスタンス変数をモデルに与える

Rails に関しては、モデルのクラス メソッドとインスタンス メソッドをモジュールに含めることで提供できます。ただし、モデルに変数を含める方法について言及しているブログ エントリやスレッドは見つかりませんでした。

具体的には、インクルード モデルにクラス インスタンス変数を指定したい@questionのですが、モジュール内のどこに宣言を配置すればよいか分からないため、適用されます。モデル自体がその変数を宣言している場合は、クラスのインスタンス変数もオーバーライドしたいと思います。

ActiveSupport::Concernモジュールは実際に変数をまったく気にしますか?