問題タブ [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 - 関係する alias_method
懸念事項に追加しようとしてalias_method :zzz_delete, :delete
いますが、うまくいきません。included do
、singleton_class.class_eval do
、class << self
およびこれらすべてのブロックのさまざまな組み合わせでラップしようとしました。
私は何が欠けていますか?
ruby-on-rails - カスタムacts_asのクラスメソッドを追加
メソッドの呼び出しでクラス メソッドを動的に追加したいacts_as
。私のファイル構造は次のようになります( http://guides.rubyonrails.org/plugins.htmlから取得):
クラスが を呼び出すときにのみクラス メソッドを宣言できるようにしたいacts_as_foo
。インスタンス メソッドは で動作しLocalInstanceMethods
ます。最も簡単な方法はモジュールに追加することですが、他のすべてのクラスにもこの方法があります。私はすでにメソッドに追加しようとしていdefine_method
ますacts_as
が、未定義のメソッドを返します。何か案が ?
ruby-on-rails - カスタム翻訳キーに関するRailsコントローラーの懸念
さまざまなエンティティに簡単に採用できる高度な検索機能を構築しています。この機能は、目的のコントローラーのアクションに適用されるため、コントローラーの懸念事項を使用して、各コントローラー I のそれぞれに#index
汎用パーシャルをフックすることにしました。#index
include AdvancedSearchFeature
翻訳がかなりの問題であることがわかるまで、すべてがスムーズに機能します。各高度な検索では、どこかで指定する必要があるさまざまな翻訳キーが使用されますが、どこでこれを行うのが最適かわかりません。
私は考えました:
- 懸念事項ではなく、一般的なものであるためです。
- コントローラは変換を直接処理するべきではないため、懸念事項を含めたコントローラではそうではありません。
Model.advanced_search_translation_keys
コントローラーにリンクされたモデルでは、そうではありません。これは、対応するビューで使用される変数に割り当てられる必要があるを提供するのが自然に感じられないためです。- コントローラーに関連付けられた
#index
ビューでは、そうではありません。ビューは、高度な検索機能の汎用パーシャルに渡される翻訳ハッシュで汚染されるべきではないためです。
そのため、これらの翻訳を...ヘルパーで行うことになりました。これらのヘルパーは、高度な検索機能のジェネリック パーシャルから呼び出され、目的の翻訳キーが存在する場合は、そこから取得されます。しかし...私は、特に翻訳を返すためにヘルパーを作成するという考えが本当に好きではありません.
これを行う方法についてより良いアイデアはありますか?たぶん、あなたはこの問題に出くわし、他の方法で解決しましたか?
ruby-on-rails - ActiveSupport::懸念メソッドが見つかりません
ActiveRecord::Base を拡張しています。私の lib フォルダーには、ファイル mongoid_bridge.rb があります。
config/initializers には 2 つのファイルがあり、正しい順序で読み取られるように、それぞれに 01、02 などのプレフィックスが付けられています。01_mongo_mixer.rb には次のように記述されています。
次に、02_model_initializer.rb には次のように記述されています。
model は ActiveRecord サブクラスのインスタンスであるため、ルックアップ チェーンで create_mongo インスタンス メソッドを見つける必要があります。ただし、次のエラーが発生するため、見つかりません。
インスタンスメソッドが見つからないのはなぜですか?
アップデート:
ClassMethods の下のメソッドは含まれているようですが、InstanceMethods の下のメソッドは含まれていません。
ruby-on-rails - 関連するRails協会
Rails アプリケーションに懸念事項を使用しています。私はさまざまな種類のユーザーを持っているので、loggable.rb
心配しています。
私の懸念では、
懸念を含むすべてのユーザーが auth_info テーブルと関連付けられるためです。
問題は、auth_info テーブルにどの外部キーを入れる必要があるかということです。
例えば
私は3種類のユーザーを持っています:
- お客様
- 売り手
- ビジター
顧客しかいない場合、テーブルスキームにフィールドを配置します
しかし、私の場合は?
ruby-on-rails - 問題のネストされたクラス定義
内部で別のクラスを宣言する専門家ポリシー クラスがあります。
Scope
今度は、この同じ内部クラスを別の場所で使用したいと考えています。1 つの方法は、スーパークラスで定義してオーバーライドすることですが、そのためには、別のクラスを作成してclass NewClass < ApplicationPolicy
継承する必要がありPaymentPolicy
ます。しかし、クラス定義を懸念モジュール内に配置する方法が好きActiveSupport::Concern
で、わかりません。これ
動作しません。これも:
ネストされたクラス定義を懸念モジュール内に配置するにはどうすればよいですか?
ruby-on-rails - Elasticsearch - Active Record モデルからのレコードの自動インポート
システム:
- レール4
- ルビー2
- エラスティックサーチ 1.6.0
Elasticsearch を使用してレコードをフィルタリングし、Active Record モデルの統計を計算しています。Elasticsearch インデックスに Postgres データベースを反映させて、既存のレコードがインデックスにインポートされたり、新しいレコードが作成されるとインデックスが作成されるようにしたいと考えています。
私のモデルの2つが次のように含まれていることに懸念があります。
しかし、Rails コンソールを開いて を呼び出すとBar.statistics
、nil
すべてのフィールドが表示されます。次に を実行するBar.import force: true
とBar.statistics
、拡張統計集計で nil 以外の正しい値が得られます。
その他の注意点: Pry を使用して Rails コンソールで foo.rb を開いて終了すると、Cannot define multiple included blocks for a Concern
エラーが発生しました (ただし、アプリケーションのロードは正常に機能します)。
自分のレコードを ES に自動インポートするための何かが不足していますか?