問題タブ [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 ActiveSupport:Concern と Private メソッド
これは、レールの懸念に関する素晴らしいアイデアです: http://37signals.com/svn/posts/3372-put-chubby-models-on-a-diet-with-concerns
また、パブリック API の一部ではない非常に小さなメソッドを作成することもお勧めします。懸念を使用しないと、それらは ruby クラスのプライベート メソッドになります。
Rails ActiveSupport::Concern モジュール内にプライベート メソッドを作成することは理にかなっていますか? もしそうなら、private は通常のインスタンス メソッドと懸念定義のクラス メソッドの両方で機能しますか?
ruby-on-rails-4 - 懸念でstate_machineを定義する方法は?
重複したロジックを懸念事項に含めようとしています。複製されたロジックの一部はstate_machineです。
簡略化すると、Database
、Site
、SftpUser
およびその他には、とりわけ次のものが含まれます。
私はこれを懸念事項にリファクタリングしようとしています:
ただし、これは a に a を実装する正しい方法ではありませstate_machnine
ん。これは、Double にステートマシンがまったく割り当てられなかったことを示しています。concern
NoMethodError: undefined method 'deploy_state' for <DeployableDouble:0xb9831f8>
included do
これを実装するのに実際に正しいコールバックはありますか? state_machine
ActiveRecord::Base などのサブクラスが必要なのでしょうか? 私が得ていない何か?私は懸念の概念にかなり慣れていません。
ruby-on-rails - インスタンスメソッド内から ActiveSupport::Concern クラスメソッドにアクセスする
私は Michael Hartl のチュートリアルに取り組んでいますが、User クラスが少し雑然としているのを見つけていました。機能のチャンクを個別のミックスインにプルすることで、少しクリーンアップしたかったのです ( new-ishActiveSupport::Concern
と古いself.included(klass)
パターンを使用)。
セッションセクションで少し問題があります。
「models/user/session_management.rb」から:
「models/user.rb」に含めます:
これは、認証モジュール (実際には単なる検証とhas_secure_password
) では問題なく機能します。ただし、インスタンス メソッドは、およびクラス メソッドcreate_remember_token
にアクセスしようとしてスローしています。encrypt
new_remember_token
明らかな何かが欠けているように感じます。どんな洞察も大歓迎です。前もって感謝します!
ruby-on-rails-4 - 例外: Rails で「定数のオートロード中に load_missing_constant Circular 依存関係が検出されました」
Rails 4.0.2 を使用しています。懸念ディレクトリにサブディレクトリ (モデル名付き) を追加しました。
- /app/models/concerns/company/cache_concern.rb
- /app/models/concerns/user/cache_concern.rb
- /app/models/concerns/document/cache_concern.rb
会社のディレクトリにある cache_concern.rb には、次の内容がありました。
私のモデルクラスでは、次のことがありました。
制作に入るまでは順調でした。次に、次の例外が発生しました。
「load_missing_constant」: 定数 Company::CacheConcern (RuntimeError) のオートロード中に循環依存関係が検出されました
私の問題を解決するために、懸念ファイルの名前空間を Company::CacheConcern から Concerns::Company::CacheConcern に変更します。これにより、本番環境でアプリケーションをロードできます。
しかし、現在、Company クラスを使用している行の懸念ファイルの開発環境に問題があります。
NoMethodError (Concerns::Company:Module の未定義のメソッド「current_company」):
そのため、彼は懸念ディレクトリを検索しているようです。本番環境ではすべて問題ありません。この問題を解決するには、懸念ファイルでクラス名の前に 2 つのコロンを追加して、モデル ディレクトリのクラスを使用します。
アプリ全体をメモリにキャッシュするため、本番モードは開発と同じように動作しないことを知っています。同様の投稿をすべてチェックしました。モデル ディレクトリのクラス名の前に、懸念ファイルで 2 つのコロンを付ける必要がありますか? 誰かがこの奇妙な状況を説明してくれたら、とてもありがたいです。
ありがとう
ruby-on-rails - ActiveSupport::Concern とモデルの継承
複数のモデル間でいくつかの動作を共有したいと考えています。少なくとも 2 つのアプローチがあります。
1) ActiveSupport::Concern
:
2) モデル (クラス) 継承:
最初の方法の唯一の利点は、必要な数のモジュールを含めることができることです。両方のアプローチのその他の利点/欠点はありますか?