問題タブ [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 - エンジンからアプリケーションにbefore_filterを追加する方法
多くの特定のコードがなければ、これは漠然としたものですが、私ができることを提供します。
Railsエンジン、基本エンジンであり、独自のスペースにマウント可能なエンジンではない場合、アプリケーションコントローラーのbefore_filterとして、エンジンからのメソッドをアプリケーションで使用できるようにするにはどうすればよいですか?
Deviseのコードを調べてきました。これは、Deviseでの経験と似ているためですが、私が行っていることの多くを理解していないことは認めます。
これは、フィルタリングに使用できるメソッドをアプリコントローラーに配置した場合に実行できますinclude Myengine::Mymodule
が、モジュールを含めなくてもメソッドを使用できるようにしたいと考えています。
これは、Railsアプリケーションを複数のRailsアプリで使用されるエンジンに変えようとする際の最新の障害であり、適切な名前空間、モジュール構成などを処理するためのガイダンスをいただければ幸いです。
ruby-on-rails - Rails 3.1 へのアップグレード後、依存関係が正しく読み込まれないようです
認証に Devise を使用する Rails 3 プロジェクトを Rails 3.1 マウント可能エンジンにアップグレード中です。アップグレード後、Devise が正しく初期化されていないようで、次のエラーが発生しますNameError
。
2010 年のこの問題は、通常のアプリケーション環境以外で Devise を使用する場合の非互換性を示唆しています。
おそらく、スタンドアロンで実行していないときは、Devise は必要ありません。
このより最近の問題は詳細に入りますが、それは私の実際の問題に関するものではありません (おそらくまだ)。
どこから来たのかよくわかりません。CanCan や Compass などの多くの依存関係が、アップグレード後の起動時にエラーを出し始めました。それらはすべてmethod missing
、uninitialized constant
などでした。私はこれを、それらを排除するか、より現代的な代替品に置き換えるチャンスだと考えました. たぶん、私はそうすべきではありませんでした。
誰でもこれを修正する方法を知っていますか?
ruby-on-rails - マウント可能なエンジンのアセット/ビューをオーバーロードしますか?
RailsアプリケーションにマウントされるRails-3.1マウント可能エンジンを開発しています。エンジンはもちろん独自のアセットとビューを提供しますが、いくつかのファイルをオーバーロードしたいと思います。
例:
マウント可能なブログエンジンについて考えてみましょう。ブログシステムを取得するためにどのアプリケーションにもマウントされますが、エンジンはWebサイトとまったく同じように見えるはずなので、一部のアセットファイルと一部のビュー(_headerや_footerなど)をオーバーロードしたいと思います。レイアウトでレンダリングされたパーシャル)
マウント可能なエンジンでそれは可能ですか?
ruby-on-rails - マウント可能な Rails 3.1 エンジンの「rake ルート」を一覧表示する
Rails 3.1 で使用するマウント可能なエンジンに取り組んでおり、エンジンのルートを一覧表示したいと考えています。
以下を使用してエンジンを作成しました。
そして、「test/dummy/config/routes」ファイルを次のように編集しました。
...そして「config/routes」を読んでください:
':posts' 用に生成されたルートを一覧表示したいのですが、これを行う方法が明確ではありません。「rake app:routes」を実行すると、「/blog」ルートのみが取得されます。
「rake routes」を実行すると、エラーが発生します。
':posts' のルートを確認するにはどうすればよいですか? 関連するレーキタスクを書き直さずにこれを行うことはできますか?
ruby-on-rails - Rspecを使用したRails3.1マウント可能エンジンのテスト
Rails 3.1エンジンの作成を開始しましたが、rspecを使用してテストするのに苦労しています。
まず、実行するrails g integration_test whatever
と、spec /requestではなくtests/Integrationで定期的な統合テストが作成されます(rspec-rails gemがインストールされ、gemspecファイルの開発依存関係として必要になります)
また、スペックテストを実行すると、テストしているモデルに対応するテーブルが作成されていないというエラーが表示されます。ダミーアプリ内からrake engine_name:install:migrations
実行しようとすると、「テーブルは既に存在します」というエラーが表示されます。rake db:migrate
すべてが切断されているように見えますが、rspec gemを通常のフルレールアプリケーションのようにシームレスに動作させるために、ここに何かが欠けているように感じます。
ここhttp://rubyx.com/2011/03/01/start-your-enginesからのすべての変更に従い、ここhttp:// railscastsに示すように、コンソールからダミーアプリを起動することで、エンジンを手動でテストできます。 com / Episodes/277-mountable-engines。
Rails 3.1エンジンをテストするためにrspecをデフォルトにする方法はありますか?
ruby-on-rails - Rails 3.1エンジン:エンジンapplication_controllerをクライアントアプリのapplication_controllerと通信させるにはどうすればよいですか?
新しいマウント可能なrails3.1エンジンがあり、一般的な権限ベースのメソッドを定義するために、このエンジンを含むrailsアプリであるクライアントアプリが必要です。
だから、私が欲しいのは私のエンジンのブログコントローラーで次のようなことを言うことです:
before_filter :redirect_unless_admin
そして、それをクライアントアプリに任せて、誰が管理者であるかを定義したいと思います。ただし、これを試すと、次のようになります。
私のクライアントアプリコントローラーは次のようになります。
そして、私のエンジンアプリコントローラーには、次のものがあります。
エンジンのブログコントローラーがクライアントのapplication_controllerと通信できるように設定する方法を誰かに教えてもらえますか?
ruby-on-rails - Railsマウント可能なエンジンのDataMapperモデル?
マウント可能なエンジンを構築しています。
基本インストールから、既存のアプリケーションをエンジン名前空間に移動しました。
エンジンは起動しますが、コントローラーが参照するテーブルがデータベースにないため、エラーメッセージが表示されます。
- エンジンからデータベース内のモデルを取得するにはどうすればよいですか?
- 提供されているダミーアプリでこれをテストするにはどうすればよいですか?
dm-migrationsを調べましたが、DataMapperでまだ使用していないので、無知で未知の海域にいます。巨大な疑問符とそのすべて。いろいろ調べてみますが、今のところ、検索で役立つものはありません。
これが私が遊んでいるアプリケーションです:http: //github.com/blueblank/Ticket-Engine
ruby-on-rails - RSpec 2 で Rails 3.1 エンジンのルートをテストする
RSpec 2 で Rails 3.1 エンジンをテストしようとしています。多くの試行錯誤 (およびドキュメントとスタック オーバーフローの検索) の後、アプリは動作し、ほとんどの仕様に合格しました。問題は、ルート仕様がまだ失敗していることです。
分離された名前空間とコントローラー Foo::BarsController を持つエンジン「foo」の場合、次のようになります。
これにより、次の結果が得られます。
私のスペックダミーアプリケーションは正しく設定されているようです:
この質問に答えるのに役立つ場合、私のビュー仕様も機能していません。典型的なエラーは次のとおりです。
何か案は?
ruby-on-rails-3 - Rails 3.1 エンジン モジュール
を使用してマウント可能な Rails 3.1 エンジンを作成する場合
でエンジンを作成しますMyEngine::Engine < Rails::Engine
jQuery::Rails エンジン (Jquery::Rails::Engine) のように生成する方法はありますか、それとも手動で行う必要がありますか?
私はこれらを試しましたが、もちろんうまくいきませんでした。
ruby - rails3.1動的コントローラーのインスタンス化
初期化子からHomeControllerクラス定義を動的にロードしたいRailsEnginegemがあります。クラスを正しくインスタンス化できますが、インデックスアクションを呼び出すと、次のエラーが発生します。
アクションパック部分が長かったのでトレースを切り落としましたが、これがすべての関連情報だと思います。
これが私のEngineクラスの定義です。
これは、ルートパスをhome#indexに設定している場合です。次のように、アプリケーションまたはgemのいずれかのapp /controllersにhome_controller.rbを作成した場合:
その後、すべてが正常に機能し、インデックスアクションが適切にレンダリングされるため、ルート、ビュー、またはアプリケーションコントローラーに問題はないと確信しています。
この問題に光を当てていただければ幸いです。 の出力を編集します
HomeController.view_paths.join " : "
は
/home/chris/gems/my_gem/app/views : /home/chris/test_app/app/views