2017-08-25 9 views
0

大きなプロジェクトをマウント可能なレールエンジンに分割し、レールエンジンがマウントされているかどうかを確認する方法を探したいと思います。 は、一例として、私は私のメインアプリでUserクラスを持っているレールエンジンが搭載されているかどうかのブールチェック?

user.rb

class User < ApplicationRecord 
    has_many :searches, as: :searchable, class_name: MySearchEngine::Search 
end 

私はif文でエンジンの統合のため、このhas_manyの関連だけでなく、他のコードをラップしたいと思いますMySearchEngineが

+0

頻度あなたはそれがMOUだかどうかを確認する必要がエンジンをアンマウント/マウントされていることにより、それらが利用可能かどうかを確認することができるはずのコードが追加されますようにネーティブ?あるいは、あなたのモデルの素敵な小さなブロックにコードを保存しようとしているだけです。その場合は、ユーザーのためのすべての関連付けを終わらせることができます。たとえば、 'MySearchEngine :: UserConcerns'モジュールかそれには含まれません。また、[カスタム設定](http://guides.rubyonrails.org/configuring.html#custom-configuration)を見て、あなたのアプリの設定値を含める/含めないように設定することも可能です –

+0

一度だけですがエンジンがマウントされていないとコメントアウトする必要のあるエンジンを参照したすべての場所を調べるとすぐに、私はこれを調べ始めました。この例の場合、どのように設定値を使うことができますか? – mkrinblk

答えて

0

をマウントされている場合にのみあなたはdefined? MySearchEngine::Search

+0

erbを使ったビューでこれを使うのに問題がありました。このメソッドを使用してifブロック内のエンジンで定義されたパスでリンクタグをラップすると、ブロック内のリンクタグが評価され、未定義のローカル変数またはメソッド 'my_search_engine'がエラーになります。理想的には、タグはifブロックの内側にあるため、評価されません。ビューには別の方法が必要かもしれません。しかし、私のコントローラとモデルではこれがうまくいっていたと思います。 – mkrinblk

関連する問題