問題タブ [rails-engines]
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 エンジンです。コントローラー、ビュー、およびモデルは、プラグインの単純なジェネレーターを介して生成されています。また、ジェネレーターはモデルのテーブルの移行を作成します。
私が今直面している問題は、プラグイン モデル (テーブル構造など) を更新するたびに、移行を更新する必要があることです。また、そのプラグインを使用するすべてのアプリでプラグインを更新する必要があります。次に、移行を再生成し、更新されたタイムスタンプでもう一度再実行する必要があります。これにより、プラグイン モデルのカスタム マイグレーションを生成しなくなります (つまり、アプリ固有の動作に合わせてテーブルを調整します)。
プラグインで移行を管理する方法について何かアイデアを共有できますか? 特に、生成される移行のテンプレートを更新する必要がある場合。
ruby-on-rails - Ruby onRails3-リクエストごとにlibディレクトリをリロードします
Rails3アプリケーション用の新しいエンジンを作成しています。ご想像のとおり、このエンジンは私のアプリケーションのlibディレクトリにあります。
しかし、私はそれを開発するのにいくつかの問題があります。実際、エンジンで何かを変更するたびにサーバーを再起動する必要があります。
これを回避する方法はありますか?
Railsにlibディレクトリまたは特定のファイルと各リクエストの要件を完全にリロードさせることはできますか?
ご協力いただきありがとうございます :)
ruby-on-rails - Rails3.0Engine-ActionControllerでコードを実行します
Railsプラグインを最新の3.0RC1リリースで動作するエンジンにアップグレードしていますが、拡張するための最良の(そして最も正しい)方法を見つけるのに少し問題がありますActionController
。DHHによるこの投稿と、SOに関するこの質問を見てきましたが、私の質問は、内のコードを適切に呼び出す方法に関するものActionController
です。
たとえば、エンジンのコントローラー内で次のように呼び出す必要があります。
2つのプライベート関数を適切に含める方法は知っていますが、、、およびを適切に呼び出す方法が見つかりhelper
ませbefore_filter
んafter_filter
。
いくつかのリンクまたはこれを機能させる方法をいただければ幸いです。コントローラーに別の名前を付けてApplicationController
、実際ApplicationController
に拡張してみましたが、それもうまくいかないようです。私は、エンジンユーザーの生活を可能な限り簡単にするソリューションを本当に望んでいます。理想的には、クラスを拡張する必要はありませんが、すべての機能が独自に組み込まれていApplicationController
ます。
ruby-on-rails - Railsエンジンでpermalink_fuを使用してActiveRecordをサブクラス化する
この質問は、Rubyでのクラスメソッドの拡張に関連しており、おそらくより具体的にはpermalink_fuの方法で拡張されます。
モデルでhas_permalink
は、派生モデルでは使用できないようです。確かに、クラスで定義されたものはすべて、その派生クラスによって継承されることを期待します。
この問題の原因となるpermalink_fuの混合方法に何かありますか?
私はpermalink-v.1.0.0gemhttp://github.com/goncalossilva/permalink_fuを使用しています
ruby-on-rails - Rails 3 エンジンの作成に関する問題
初めての Rails 3 エンジンの作成に取り組んでいますが、現在、次のエラー メッセージが表示されます。
もう少し背景を説明するために、私はエンジンを gem として扱っているわけではありませんが、エンジン ファイルを vendor/plugins フォルダーに配置しました。プラグイン フォルダーでの読み込みに問題があることはわかっていますが、問題の解決方法がわかりません。
エンジンの私の rails/init.rb ファイルには次のコードがあります
提案?
ruby-on-rails - プラグイン可能な Rails アプリの作成方法
基本的には、Rails 3 アプリを書きたいと思います。
- 他のRails 3アプリに埋め込むことができます(基本的に、いくつかのルート、コントローラー、およびいくつかのビュー、永続的なモデルはありません)
- スタンドアロンで動作
- gem にバンドルして、コマンドから起動することができます (これはあると便利です)
私が読んだことから、レールエンジンは私の問題を完全に解決してくれるでしょう。グーグルで検索したときに得られるもののほとんどは、ドキュメントの不足について不満を言っている人か、実際にはプラグイン可能なアプリではないプラグインを作成している人です。誰かがより良いドキュメント/スクリーンキャストを教えてくれませんか(必要であれば本でも)
本当にありがとう
ruby-on-rails - Rails 3 のプラグインとエンジン、gem として出荷
Rails::Plugin (Rails 3 用) のドキュメントでは、次のように読んでいます。
「...プラグイン内で Rails::Engine を実際に宣言することはできません。そうしないと、同じファイルが 2 回読み込まれることになります。これは、エンジンを gem として出荷したい場合、それをプラグインとして使用することはできず、その逆-逆に。」
どのファイルが 2 回読み込まれるかについて、より具体的に説明できる人はいますか? プラグイン/gem をエンジンとして宣言しましたが、上記の記述にもかかわらず、ベンダー/プラグイン内に配置しても問題なく動作します (この方法を維持したいと思います)。私は単に、これが良いことではない理由 (およびその理由) を明確にしたいだけです。
ありがとうございました!
ruby-on-rails-3 - メインアプリケーションでRails 3エンジンモデルとコントローラーをオーバーライドする方法は?
ベース アプリで Rails 3 エンジンのモデルとコントローラーをオーバーライドできるようにしたいと考えています。
$LOAD_PATH を調べると、エンジンの 'app/{models,controllers}' が見つかりましたが、エンジンのモデルまたはコントローラー ファイルを明示的に要求することはできません。 app/controllers/enginename/*) およびプレーン エンジン)。
では、エンジンのモデル/コントローラーをベースアプリにコピーせずに Rails 3 で拡張する最良の方法は何ですか?
基本的に、それはロードオーダーの問題です。したがって、エンジンからモデルを明示的に要求する場合、すべて問題ありませんが、より良い方法があることを願っています。
ruby-on-rails - Rails 3は、1つのアプリ内で複数のアプリにアプローチするのに最適です
同じモデルを共有しているがUIが異なる2つの異なるUIを持つRails3アプリがあります。これらの小売業者と顧客を「サイト」と呼びましょう。これら2つのアプリを1つのアプリに保持するためのモノリシックアプリケーションを作成するためのRails3の最良のアプローチは何ですか。コントローラに名前空間を付けて、ルーティングを変更する必要がありますか?
名前空間「小売業者」はリソースを実行します:posts、:comments end
名前空間「顧客」はリソースを実行します:posts、:comments end
そして、すべての顧客コントローラーを顧客ディレクトリに配置し、同様に小売業者にも配置しますか?ビューディレクトリにも名前空間を設定しますか?
ruby-on-rails-3 - Rails 3 エンジン - ユーザーに設定を提供する
次の方法に関するドキュメントが見つからないようです: エンジンを使用するすべてのアプリケーションに構成変数を提供して、エンジンに設定を簡単に渡すことができるようにする必要があります。
これを行うための適切な方法または受け入れられた方法へのリンクはありますか?
編集:更新として、これを行うための適切な方法を見つけました。コードは以下です。
MyEngine::Configuration
これにより、私のエンジンを使用するアプリケーションは、クラスで定義されたメソッドを呼び出して、初期化子または environment.rb ファイルで以下のように構成できます。