問題タブ [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 - ルートに関するRails3エンジンの問題
私はこのルートファイルを持つエンジンを持っています:
タスクを実行するとrake routes
、正しい出力が得られます
私のコントローラーはとてもシンプルです:
しかし、エンジンのコントローラーに送信されるアクションを使用しようとすると、次のエラーが発生します。
RailsがこのComment
名前空間をコントローラーのどこに魔法のように追加しているかは本当にわかりません。また、これを解決する方法もわかりません。
ruby-on-rails-3 - heroku で動作する rails 3 ブログ エンジン/gem、何を使用しますか?
既存のサイトで使用する rail3 ブログ エンジンを探すのに時間を費やしました。SEO ポイントのアプリケーションと同じドメインにブログが必要です。例: blog.site.com ではなく www.site.com/blog
これにしばらく時間を費やした結果、次のことがわかりました。
- トト
- ジキル。静的ページを生成するこのアイデアは、高度にキャッシュされているため、最適なアンダーロードとして非常に気に入っています。技術者ではないブログライターがこれにどのように対処するかはわかりません.
また、次のようなより動的なプラットフォームも調べました。
- タイプミス (どの縫い目が古いか、Rails 3 への移植が難しいと思われます)
- メフィスト
この投稿Need to link WP Blog with Rails App on Herokuが示唆するように、人々はこれをあきらめていますか? これの価値を考えると、継ぎ目はクレイジーです。また、この投稿は良かったのですが、私にとっては決定的なものではありませんhttps://stackoverflow.com/questions/1807670/blog-engine-for-rails-application。
ruby-on-rails - エンジンでのコントローラーのオーバーライド (具体的には、Devise で)
サインイン/サインアウト時にDeviseのset_flash_messageを削除したいので、独自のsessions_controllerを作成し、deviseから逐語的にコピーしました。ビューを app/views/sessions にコピーし、ルートを変更しました。これで、サインインすると、サインイン ページにリダイレクトされます。レールのログが表示されます
組み込みのセッションコントローラーを使用すると表示されません。何か案は?
コントローラーをオーバーライドせずにこれを回避することはできますが、いつかそれを実行して、同じ問題に遭遇することになると思います。ホセにはわかりません。これをトラブルシューティングするにはどうすればよいですか?
ジェイ・レビット
app/controllers/sessions_controller.rb: /Users/jay/.rvm/gems/ruby-1.9.2-p180/gems/devise-1.2.1/app/controllers/devise/sessions_controller.rb と同じ。
config/routes.rb:
コントローラーのコピーを使用したレール出力:
組み込みコントローラーを使用した rails 出力:
ruby-on-rails - 私のライブラリを必要とするように Rails エンジンを変更する方法は?
依存関係として別の gem を追加して変更しようとしている Rails エンジン (他の誰かの gem) があります。エンジンにライブラリを要求させる方法がわかりません。いろいろと試してみたのですが、どうもうまくいきません。
私のメインアプリGemfile私はエンジンを持っています:
エンジンの gemspec には次のものがあります。
acts_as_something
エンジンには、このメソッドを追加して変更しようとしているモデルがあります。
そして、私が変更しようとしているコントローラーがあります:
このライブラリを依存関係としてエンジンに追加し、ライブラリを必要とする適切な方法は何ですか?
ruby-on-rails-3 - Rails エンジンの 'require' プレフィックス
gem 'foo' (エンジンベース) がある場合、そこに含まれるすべてのファイルを 'require' するときに 'foo/' プレフィックスが必要であるとどのように言えますか?
たとえば、「foo」gem に「bar.rb」ファイルがある場合、このファイルのインクルードを次のように強制できるようにしたいと考えています。
いつもの代わりに
インクルージョンコンテキストが何であれ(APPから、別のgemからなど)この動作を適用したい...
Railsファイルのほとんどは「rails」プレフィックスを介して含まれているため、実行可能であることはわかっています。
ruby-on-rails-3 - 1 つのプロジェクトに 2 つの Rails エンジン、問題を表示
現在、私は 2 つの Rails::Engines 1 つのブログ (楽しみのため) と 1 つの csv インポーターとマッパーを開発しています。enginex と jeweler で宝石にしました。それらをローカルにインストールし、そのうちのいずれかを空の Rails 3.x プロジェクトに含めましたが、正常に動作しています!
私が知りたいのは、1 つの Rails 3.x プロジェクトに両方のgem を含めることです。これはすべて機能し、エラーは発生しませんが、ここに問題があります。
「/blog」ルートに移動すると、すべてが完全にレンダリングされます。しかし、「/csv」ルートに移動すると、レイアウトが表示されません。development.log を見ると、次のように表示されます。
これはすべて問題ないように見えますが、html が表示されません。<%= raise "hell %>
しかし、 index.html.erb の中に a を入れると、それが発生します。だから私はここで困惑しています、私のエンジンは両方とも動作します。Rails ロジックはすべて機能しますが、index.html.erb 内に自分の html が表示されません。
最も奇妙なことは、空の Rails 3 アプリにブログの宝石なしで「csv_engine」の宝石を含めると、すべて正常に動作し、html ビューが表示されることです。
空のホストアプリ内からビューを上書きしようとしましたが、たとえばapp/views/csv_engine/imports/index.html.erb
、他のhtmlを使用しましたが、これも機能しません。誰かがこれが何であるか知っていますか?
ruby-on-rails - cache_classes = falseの場合、Rails Engineの初期化子のインクルードが誤動作するのはなぜですか?
次のように、イニシャライザで別のエンジンのクラスを拡張するエンジンがあります。
ProductExtender
モジュールは、AnotherApp::Product が含まれている場合に、いくつかのメソッドを呼び出します。
これはテスト環境と本番環境で機能しますが、config.cache_classes = false
@ NoMethodError
product.variations などの ProductExtender で定義されたものを呼び出そうとすると、エラーが発生します。
言うまでもなく、すべてのテストに合格したのに、開発中にエラーが発生するのを見るのはゾッとします。を設定すると発生しませんcache_classes = true
が、やってはいけないことをしているのだろうかと思います。
私の質問は 2 つあります。なぜこれが起こっているのですか。また、別のアプリケーションのオブジェクトでメソッドを拡張/呼び出しするこの機能を達成するためのより良い方法はありますか?
皆さんありがとう!
ruby-on-rails - Redmineプラグイン/Railsエンジン-すべてのページにあるプラグインの画像/JavaScriptのパス?
了解しました。Redmine(Rails Engines)用のプラグインがあります。プラグインはフックを使用して、HTML/コントロールがRedmineのすべてのページにレンダリングされるようにします。
このプラグインからコントローラーに情報を送受信しています。これで、javascriptとcssで使用できる2つのオプションがあります。相対パスまたは絶対パスです。
URLパスは、パス元の1〜3セクションのどこかにある可能性があるため(コントロールはすべてのページから機能する必要があるため)、相対パスはすべてのページで機能するわけではありません。このオプションでは、プラグインがURL内の同じネストされたレベルでレンダリングされる必要がありますが、そうではありません。
Absolute Pathingは特定のインストールで機能しますが、パスがドメインルートの下にないインストール(www.mysite.comではなくwww.mysite.com/redmine/)で他の人がプラグインを使用すると、プラグインが壊れます。これには手動編集が必要ですが、これはまったくエレガントではありません。
この一見単純な問題に簡単に対処する方法はありますか?
ruby-on-rails - Rails 3 エンジンが提供する名前付きルートのオーバーライド
Rails エンジンを使用する Ruby on Rails 3(.0) アプリケーションに取り組んでいます。しかし、私のローカル アプリケーションでは、Rails エンジンが提供するルートの 1 つをオーバーライドしたいと考えています。
エンジン config/routes.rb から:
私のアプリケーション config/routes.rb から:
ただし、ルートを調べると、両方がアクティブであるように見えます (少なくともエンジンコントローラー内では、ルートが「勝つ」ように見えます)。
ローカル アプリケーションの名前付きルートを強制的に優先させる良い方法はありますか?