問題タブ [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 - Ruby/Rails with Rails Engine (Redmine プラグイン) - オーバーライドせずにベース ビューに追加しますか?
基本の Redmine レイアウトに何かを追加する必要があるプラグインがあります。この変更は、いくつかの div と JavaScript 関数の呼び出しで構成されています。現在、基本レイアウト ビューをオーバーライドするだけでこれを実現しています。
Redmine をアップグレードすると、オーバーライドされたページは更新されたバージョンで更新されないため、これを行うのは好きではありません。この機能を追加するよりエレガントな方法はありますか?
ruby-on-rails-3 - Rails3エンジンと静的アセット
宝石としてバンドルしたエンジン(gmaps4rails)を構築しています。エンジンの/publicをrailsアプリの/publicにコピーしました。
開発ではすべて正常に機能しますが、本番環境では機能しません。(エンジンとメインアプリの)静的アセットが見つからないようです。
ログには次のことが示されています(単なる要約)。
私はいくつかのことをしました:
私のアプリのproduction.rbで、次のように設定しました。
config.serve_static_assets = true
これは問題を解決しますが、十分にエレガントではありません。falseのままにして、エンジンに構成を追加したいと思います:)
私はここでのアドバイスに従いましたが成功しませんでした。
ruby-on-rails - Rails 3 エンジンからのルートをホスト アプリケーションで使用できるようにするにはどうすればよいですか?
追加機能を含むいくつかのエンジンを備えた Rails 3 アプリケーションがあります。各エンジンは、顧客がアクセス権を購入できる個別のサービスです。
ただし、コントローラーとビューですぐに利用できないエンジンからのルートに問題があります。
コントローラ:
app/views/classrooms/new.html.haml
:
config/routes.rb
エンジン内:
config/routes.rb
アプリ内:
lib/my_engine_name.rb
エンジン内:
に行こうとすると/classrooms/new
、
classrooms_path
他のビューから呼び出そうとすると、同じエラーが発生します。ただし、呼び出しMyEngineName::Engine.routes.url_helpers.classrooms_path
て機能させることはできます。ルートを間違って定義したのではないかと考えていますが、別の方法が見つかりません。
Passenger (スタンドアロンおよび Apache モジュール) と WEBrick (rails サーバー) の両方でアプリを実行してみました。Git から最新の Rails を使用する ( 7c920631ec3b314cfaa3a60d265de40cba3e8135
)。
ruby-on-rails - Rails 3エンジンをCucumber&Rspecでテストする方法は?
この質問が少し主観的なものである場合は、お詫び申し上げます... Cucumber&Rspecを使用してRails3エンジンをテストするための最良の方法を見つけようとしています。エンジンをテストするには、rails3アプリが必要です。これが私が現在行っていることです:
次のコマンドを実行して、Railsテストアプリをgem(myengine)のルートに追加します。
rails new /myengine/rails_app
/myengine/rails_app/features
通常のRailsアプリの場合と同じように、キュウリをに追加しますRails Engine Gem(を使用
:path=>"/myengine"
)を要求する/myengine/rails_app/Gemfile
gemのルートディレクトリに仕様を追加します。
/myengine/spec
にフィクスチャを含め、
/myengine/spec/fixtures
cucenv.rbに以下を追加します。
env.rb:
このように設定することに問題がありますか?テストは正常に実行されますが、テストレールアプリ内に機能を配置することを少し躊躇しています。私はもともとgemのルートに機能を配置しようとし、その中にテストレールアプリを作成しましたfeatures/support
が、cucの実行時にアプリが他のすべてをロードしているのを確認できたとしても、何らかの理由でテストを実行したときにエンジンが初期化されませんでした。
Rails Enginesを使用していて、テストにcucとrspecを使用している人がいる場合は、セットアップについて聞いてみたいと思います。
* * UPDATE
この質問を書いたので、セットアップを少し変更しました。エンジンのルートの下にあるspecディレクトリを削除することにしました。ここで、「test_app」という名前のRailsアプリを作成し、Railsアプリで通常行うように、そのアプリ内にcucとrspecをセットアップします。次に、上記の手順3で行ったように宝石を含めます。エンジンはサブアプリなので、通常のレールアプリのようにテストするのが一番いいと思います。誰かが別の設定をしているのかどうか、私はまだ聞きたいです。
ruby-on-rails - 個別の DB を持つ Rails エンジン
このトピックをグーグルで検索しても何も見つかりません。私は、Rails エンジン (v2.3.10) を使用して、2 つの Rails アプリを 1 つに結合することを任されています。あるアプリのデータベースを別のアプリに移行しようとしています。私の最初の考えは、ここに投稿された同様の方法を使用して、複数のデータベースの使用を組み込んだ移行を作成することでした。
基本的には、db 構成をロードし、データベースごとに 1 つずつ、2 つの AR クラスを定義してから、これらの AR クラスをテーブル クラスでサブクラス化します。次に、元のアプリ データベースのすべてのものを繰り返し処理し、新しいデータベースに追加します (新しいスキーマに一致するように変更します)。
次に、エンジンに何らかの組み込みサポートがあれば、またはこのマルチデータベース接続を容易にするようなプラグインがあれば、もっと簡単になると思いました。私は手動で作業を行うことに慣れていますが、この種のことに対する適切な解決策を誰かが知っているかどうかを確認したいと思いました。
最終的には移行先のデータベースを介してすべてにアクセスするため、1 回限りのソリューションを探しています。
ruby-on-rails - Railsエンジンでの移行?
同じバックエンドと通信する複数のRailsアプリケーションがあり、それらにいくつかの移行を共有してもらいたい。
Railsエンジン(enginexを使用)をセットアップしました。何でも(コントローラー、ビュー、モデルなど)共有できますが、移行はできません。動かせない!
ファイルdb/migrate / my_migration.rbを作成しようとしましたが、メインアプリケーションで作成した場合:
それらをロードしません。
いくつかのグーグルの後、これに関するいくつかの最近の作業があったようであり、これはRailsマスターにマージされたようです。私はRails3.0.3を使用していますが、これを機能させる方法はありますか?
ありがとう !
ruby-on-rails - Rails アプリで rdbms と mongodb を使用するにはどうすればよいですか?
私は現在モンゴイドで水域をテストしており、これまでのところeコマースストアで開始しています. もちろん、mongoid にはトランザクションがないので、認証、承認、製品情報などを含むほとんどのアプリに mongoid を理想的に使用したいと思います。
ただし、トランザクションがないため、rdbms に戻す必要があります。rdbms は、金融取引を記録するためだけに使用されます。
これはレールで可能で、誰かがそれをやったことがありますか?
私は一般的にレールの経験が限られていますが、安全な部分をエンジンとしてマウントし、URL を secure.myapp.com または myapp.com/secure/ の下にスコープすると、ラックが物事を処理している間、ユーザーは ssl にリダイレクトされると思います共有セッションのように。
これは機能しますか?または、これを実装するより良い方法を見つけた人はいますか?
ruby-on-rails-3 - Devise と rspec を使用して Rails3 エンジンをテストする方法
Devise Gem に依存する Rails エンジンを開発しています。私のエンジン自体も宝石であり、そのためのテストを書く必要があります。このために、gem の内部からエンジンをテストする方法をたくさん読んだ結果、次の設定にたどり着きました。
Devise gem を含める前に、テストを作成して実行することができました
今、私はDevise gemとこのようなユーザーモデルを持っています
私のテストは、ユーザークラスとデバイス呼び出しを指して失敗します。
だから今、私はエラーを調査し、デバイスと私のエンジンを一緒にダミーアプリケーションを起動する方法を見つけようとしています. 仕様ヘルパーは次のようになります
evnironment.rb
アプリケーション.rb
boot.rb
宝石ファイル
私もこのように私のエンジンを要求しようとしました
Gemfile と gem がすべて読み込まれます (Bundler.setup が実行され、Devise 定数が使用可能になります)。
my_engine gem を使用する外部アプリケーションを作成しました。エンジンからテストをコピーして実行すると、すべて合格します。
不足しているものはありますか?エンジンのテストを作成するためのより良い方法はありますか?
ruby-on-rails - Rails 3 アプリ用のカスタム プラグイン/gem/エンジンの作成
私はガイドhttp://edgeguides.rubyonrails.org/plugins.htmlに従っていますが、少し古くなっているようです。それを見て、Rails 3 でどのセクションを別の方法で行うべきか教えていただけますか?
EDIT1: 代替チュートリアルへのリンクも大歓迎です!
ruby-on-rails - Rails 3 gem をデバッグするにはどうすればよいですか?
このチュートリアルに基づいて gem/engine を作成しました:
http://www.themodestrubyist.com/2010/03/05/rails-3-plugins---part-2---writing-an-engine/
ただし、新しく作成したアプリケーションで gem を使用しようとすると、エラーが発生します。アプリケーションにアクセスしようとすると、「Routing Error - undefined method `sub' for nil:NilClass」というメッセージが表示されます。
ログ ファイルで確認できるのは、同じエラーだけです。スタック トレース/デバッグ トレースがないため、エラーの原因がわかりにくい。理想的には、「gem から」スタック トレースを確認したいのですが、Rails はアプリケーションの外部から発生したエラーをデバッグしていないように見えますか?
私はrvm、ruby 1.9.2、rails 3.0.1を使用しています。
デバッグ メッセージが示すように、これはルーティング エラーではないと思いますが、gem の config/routes.rb ファイルを次に示します。
助言がありますか?