問題タブ [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.

0 投票する
1 に答える
1174 参照

ruby-on-rails - Rails 3: テーマに応じてさまざまな場所から静的アセットを提供する

Rails 3 アプリケーション用のシンプルなテーマ システムを作成しています。Rails.rootテーマは、 /themesに配置されたフォルダーで構成されます。

  • .yml マニフェスト ファイル
  • いくつかの液体テンプレート ファイル
  • 静的アセットのサブフォルダー

特定のコントローラー/アクションについて、現在のテーマからビューをレンダリングしたいので、それに応じて静的アセットを使用します。

したがって、レールに書き直すように指示する方法が必要です

  • http://example.com/theme1/* ----> #{Rails.root}/themes/theme1/assets/*
  • http://example.com/theme2/* ----> #{Rails.root}/themes/theme2/assets/*
  • ...

現在、テーマごとに異なるエンジンを使用したり、のサブフォルダーにアセットファイルをコピーしたりすることを避けたいため、これを行う方法がわかりませんpublic

どうすればこの問題を解決できますか?

編集:その他の要件

私は、Rails のデフォルトを混乱させないものを探していました。これにより、後で新しいアセット パイプライン機能 (Rails 3.1 用に計画されています) を利用することができます。

現在、私はこれだけを見つけました:

残念ながら、アセット パイプラインが有効になっている場合は適用されません。

0 投票する
3 に答える
3666 参照

ruby-on-rails - rails 3.1 エンジンとデータベース

Rails 3.1エンジンは独自のデータベースを持ち、同時にユーザー認証などのためにメインアプリのデータベースにアクセスできますか?可能であれば、これをどのように構成できますか?

ありがとう

0 投票する
1 に答える
934 参照

ruby-on-rails-3 - RSpec を使用して、実際のアプリに対して Rails3 エンジンを開発する方法は?

エンジンの開発、およびテスト用のダミー アプリの使用については、多くのことが書かれています。

私たちの場合、スタンドアロンのエンティティではなく、実際の Rails 3 アプリケーションに依存するエンジンを開発しています。エンジンの仕事は、独自のテーブルとモデル マッピングを持つレガシー システムからデータをインポートすることであり、最終的には再び削除する必要があるため、このコードはエンジン内に存在し、アプリの一部にはなりません。

古いレガシー テーブルと新しいスキーマ間のデータ マッピングは複雑であり、エンジンを (rspec を使用して) TDD したいと考えています。

  • Jose Valimの本「Crafting Rails Appliations」に従い、 enginex gemを使用しています。
  • /spec/dummy_app実際の Rails 3 アプリを指す git サブモジュールに置き換えました。
  • 実際のアプリの Gemfile がエンジンを指していないため、エンジンからモデルを読み込むのに問題があります (未定義のシンボル エラー) config/application.rb。 、本の15〜16ページで説明されているように)。
  • エンジンのlibフォルダーを読み込みパス$:に含めてspec_helperおり、パスが利用可能です。
  • を入れても問題は解決しませんでしたrequirespec_helper.rb
  • 内部 Rails API (または巧妙なモンキー パッチ) が実際のアプリのブート シーケンスにフックされ、エンジンを必要とするかどうか疑問に思っています。
  • 私が完全に確信していないもう 1 つの問題は、2 つの Gemfiles (エンジンに 1 つとアプリに 1 つ) があり、エンジンがアクティブな場合は両方を使用する必要があることです。

考え?

0 投票する
1 に答える
599 参照

ruby-on-rails - Railsエンジンによって追加されたActionControllerメソッドの内部からモデルにアクセスできません

宝石としてパッケージ化するRailsエンジンを開発しています。私のエンジンのメインモジュールファイルには、次のものがあります。

ここで、AuditorLogは、エンジンによって提供されるモデルです。(私の意図は、このエンジンを使用するアプリケーションのコントローラーに「is_audited」を追加することです。これにより、要求の詳細の監査ログが作​​成されます。)

私が抱えている問題は、エンジンが使用されているアプリケーションからこのコードが呼び出されると、AuditorLogモデルにアクセスできないことです。RubyはそれがActionControllerのクラスであるべきだと考えているようです。

NameError(初期化されていない定数ActionController :: Auditor :: InstanceMethods :: AuditorLog)

私のエンジンのモデルではなく。

誰かが私を正しい方向に向けることができますか?エンジンを作成し、それをgemとしてパッケージ化するのはこれが初めてです。私はこの例を探しましたが、あまり運がありませんでした。この機能をActionControllerクラスに追加するための私のアプローチは、mobile_fuの機能に基づいていたので、これがすべて間違っている場合はお知らせください。

0 投票する
6 に答える
4707 参照

ruby-on-rails - Ruby onRails3.1ブログエンジン

ブログエンジンについて質問する人はたくさんいますが、質問と回答のほとんどはかなり古いものです。または、それらが古くない場合、ほとんどのプロジェクトは古くなります。現在Rails3.1をサポートしている、または少なくともRails3.1をサポートするために積極的に開発されているブログエンジンを知っている人はいないでしょうか。

Rails3.1ブログ用に作成されたサンプルアプリケーションやブログ投稿もご覧ください。私は自分のWebサイトの1つにブログを追加する予定ですが、良いものがあれば、Railsエンジンまたはサンプルコードを使用することをお勧めします。私は車輪の再発明を嫌います。自分のニーズに合わせて簡単に変更できるように、シンプルであまり意見がないものを探しています。

0 投票する
1 に答える
266 参照

routes - Rails 3.1エンジンを使用しているときに、既存のルートを参照するにはどうすればよいですか?

Rails 3.1でフォレムエンジンを使用していますが、アプリケーションレイアウトはやなどのいくつかのリソースルートを参照していusers_pathますnew_sprite_path

これはすべてエンジンの外では正常に機能しますが、エンジンのページに移動しようとすると、

エンジンにアプリケーションのパスを正しく表示させるにはどうすればよいですか?

0 投票する
1 に答える
2280 参照

ruby-on-rails - Rails3.1エンジンから親アプリのヘルパーメソッドを呼び出す方法

親アプリケーションのユーザーモデルとの関係を確立するために「動作」形式を使用するRailsエンジンを構築しています。

開発者がオプションを使用してヘルパーメソッド名を指定できるようにしたいと思い:auth_withます。開発者は、親アプリケーションで、そのセッションのサインインしたユーザーを返すヘルパーメソッドを指定するという考え方です。

私の質問は、開発者がauth_withオプションを指定したら、その親アプリケーションのメソッドをどのように呼び出すことができますか?

親アプリケーションのサインインしたユーザーを取得するためのより良いアプローチはありますか?単に呼び出すことに依存しないように、できるだけ柔軟にしたいと思いcurrent_userます。

0 投票する
4 に答える
4909 参照

ruby-on-rails-3 - Gemfile を使用して、Rails 3 アプリで gemspec の依存関係を自動ロードするにはどうすればよいですか?

Railsエンジン/宝石に変えているRails 3アプリがあります。このエンジンには、.gemspec ファイル内にいくつかの gem 依存関係があります。

新しい「親」Rails 3 アプリを作成しました。エンジン gem を Gemfile に追加して、gem の依存関係を自動的に「ロード」したいのですが、うまくいきません! bundle installgem の依存関係を正常にインストールしますが、サーバーを起動すると、読み込まれていないためにアプリがクラッシュします。

たとえば、私のエンジンの gemspec には次の行が含まれています。

.. 親の Rails 3 アプリケーションの Gemfile には次の行があります。

しかし、次のエラーが表示されます。

しかしgem 'acts_as_commentable', '>= 3.0.1'、親の Rails 3 アプリの Gemfile に追加すると、gem が読み込まれ、エラーは消えます。

Rails 3.0.8 を使用しています。

誰か提案はありますか?エンジンのロード方法を変更する必要はありますか?

0 投票する
0 に答える
785 参照

ruby-on-rails-3.1 - Rails 3.1 Engine プラグイン rspec テスト (外部 gem Spree Commerce)

外部の gem: Spree に依存するアプリ内にエンジンを作成しました。そして、このガイドに従って、そのエンジン内に RSpec を設定するために最善を尽くしました。

いくつかの統合テストでコントローラーをテストしようとすると: tests_spec.rb:

ダミー アプリの environment.rb ファイルに、次のコマンドを実行できないというエラーが表示されます。

私のコントローラーは Admin::ResourceController を拡張機能として使用しているため、外部 Spree gem 内で宣言されています。rspec がメイン アプリ (エンジン プラグインを含むもの) の gemfile からそのクラスを読み取ることができないかのように。

誰かがそれに光を当てることができますか?

0 投票する
4 に答える
5993 参照

ruby-on-rails - Guardはファイルの更新を認識しません

このセットアップを使用してカスタムエンジンを開発しています。

私はエンジンを作成しました

次に、開発の依存関係として追加rspec-railsしましたguard-rspec

私のgemspecファイルにあります。

両方を実行するrspecrake spec(またbundle execはなしで)、スペックは正常に実行されます。ただし、コマンドを実行すると、guardすべての仕様が初めて実行され、その後は何も実行されません。アプリ全体でファイルの変更は検出されません。

Guardfileは通常どおりに生成されguard init specます。その内容は次のとおりです。

ガードを実行したままシェルを開いたままにして、別のシェルから実行してtouch app/my_model.rbも何も起こりません。Guardfileにリストされている他のすべてのファイル(パターン)についても同じです。

この種の問題をデバッグする方法はありますか?

アップデート 私は新しいプロジェクト(レールプロジェクト)を作成し、これを使ってガードシェルジェムをインストールしましたGuardfile

この場合でも、ファイルを編集しても何も起こりません。rb-fsevents問題はどこか別の場所、おそらく宝石にあるのではないかと私は考え始めています。何を確認できますか?