問題タブ [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.
ruby-on-rails - 引数を取るRails 4の懸念を作成する方法
User という ActiveRecord クラスがあります。私は、Restrictable
次のようないくつかの引数を取るという懸念を作成しようとしています:
restricted_data
次に、これらの引数に対して何らかの操作を実行してデータを返すことができる、呼び出されるインスタンス メソッドを提供したいと考えています。例:
どうすればそれを行うことができますか?
ruby-on-rails - Rails 4 エンジンから ActionController::Base を拡張する
Rails 4エンジンから拡張しようとしているActionController::Base
ので、それをマウントするアプリは各アクションの前に特定のメソッドを実行します。これを行うには、懸念class_eval
やオープンクラス化など、いくつかの異なる方法がある可能性があることを理解しましたが、私はこれについてまったく新しいものであり、見つけたリンクは主にメインアプリからエンジンコントローラーを拡張する方法ではなく、エンジンコントローラーを拡張する方法に関するものでした。私がしようとしているように周りの道。
これは私が試したことです。次のように、エンジンのコントローラーフォルダーに新しいフォルダーを作成しました。
そして、base_controller.rb
私は以下を追加しました:
これは機能しません。ロードされていないためだと思ったので(レールエンジンでこのようなカスタムコードを配置する方法と場所をまだ理解しようとしています)、そのコードをmy_engine/lib/my_engine/engine.rb
ファイルにコピーしようとしましたが、次のエラーが発生しましたサーバーの起動時:
どうすればこれを達成できますか? また、ファイルをどこに正しく配置すればよいですか?
ruby-on-rails - ActiveSupport::Concern を使用してクラス メソッドを継承する方法
私の Ruby on Rails アプリケーションには、クラスの小さな階層があります。子クラスに継承させたい情報を含むクラスを記述するサポートに懸念を追加しようとしました。この問題は、次の小さなサンプルで説明できます。
このサンプル コードを返してほしい
残念ながら、ChildItem と AnotherItem は、親クラスに設定されたクラス「プロパティ」を追加せず、代わりに戻ります
クラスの継承を希望どおりに機能させるにはどうすればよいですか?
ruby-on-rails-4 - モデルの懸念モジュールと共有されるコントローラの懸念モジュール?
controllers/concerns フォルダーに FooConcern モジュールを作成し、models/concerns に FooConcern モジュールを作成すると、オーバーライドの問題が発生しますか、それとも disinct モジュールのように使用できますか?
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
ruby-on-rails - Rails 4.2 の懸念内容がテスト環境で無視される
私は本当に奇妙な問題で立ち往生しています。最近、Rails 4.1 から 4.2 に更新しました。4.1 では、すべて正常に動作しました。しかし現在、4.2 では、懸念が見つかったとしても、モデルの懸念の内容は無視されているようです。
簡単に言えば。懸念事項で定義されている関係にClient
属するモデルがあります。Address
Addressable
アプリ/モデル/client.rb
アプリ/モデル/アドレス.rb
アプリ/モデル/懸念/addressable.rb
development
環境には問題ありません。問題なくできClient.new.address
ます。しかし、test
環境では、同じ行でunknow method address
エラーが発生します。そこに移動belongs_to :address
するとClient
、再び機能します。モジュールが含まれているのは、これに関するエラーがないためです。名前を変更するとAdressabledewdewded
、もちろんエラーが発生します。
検証方法などでも同じことが起こります。
これをデバッグしていますが、ルートが見つかりません。development.rb
asをコピーtest.rb
してサーバーを再起動しましたが、まだです。新しく作成した Rails 4.2 アプリケーションでこれを再現することはできないため、アプリケーションまたは更新プロセスに何らかの関係があるはずですが、どこにあるのかわかりません。
誰にも手がかりがありますか?
ありがとう
アップデート
Client.new.address
これは、テスト環境のコンソールで実行した場合のスタック トレースです (開発中は動作します)。
アップデート
両方の環境での結果はClient.ancestors
次のとおりです (もちろん、インスタンス ID のみの違いはありません)。
そして、それをClient.reflections.keys
行うaddress
と、開発では表示されますが、テストでは表示されません。
ruby-on-rails - Rails 4 の問題: クラスのインスタンス変数をモデルに与える
Rails に関しては、モデルのクラス メソッドとインスタンス メソッドをモジュールに含めることで提供できます。ただし、モデルに変数を含める方法について言及しているブログ エントリやスレッドは見つかりませんでした。
具体的には、インクルード モデルにクラス インスタンス変数を指定したい@question
のですが、モジュール内のどこに宣言を配置すればよいか分からないため、適用されます。モデル自体がその変数を宣言している場合は、クラスのインスタンス変数もオーバーライドしたいと思います。
ActiveSupport::Concern
モジュールは実際に変数をまったく気にしますか?