問題タブ [rack-middleware]
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/Rack コードの「use」キーワード/単語
最近、 goliathやミドルウェアなどにuse
関連するコードを調べていたときに、Ruby のコードで ,という言葉をたまたま目にしました。include
extend
require
use
このキーワードが存在する理由と、 include
/との違いを誰かが説明できますかrequire
? どのように機能し、いつ使用するのですか?
ruby-on-rails - ラックエラーの取得Rack::Lint :: LintError:ステータスは整数として表示される100以上である必要があります
ラックベースのrubyアプリを作成しようとしていますが、ここではまだ新しいので、ruby1.9.2-p180を使用しています。
私のconfig.ruファイルには次のものがあります。
ミドルウェア認証の主な問題は、単純に、リクエストのパラメータが2つ未満の場合は、MyAppを続行せず、何かを出力することです(テスト用):
ラックアプリを実行すると:
そして、結果を取得してみてください:
次のエラーが発生し続けます:
もちろん、本番モードで実行した場合、このエラーは発生しません。
どんな助けでもここでいただければ幸いです。
ruby-on-rails - ラックアプリケーションとセッション/ハッシュを共有する
私はRackを初めて使用し、それをいじって遊んでいます。すべてのRackアプリ間でセッションまたはハッシュテーブルを共有したいと思います。
次のconfig.ruがあるとしましょう
Authがメモリ内のuser_idをチェックするようにしたいのですが、リクエストが初めての場合は、データベースからのデータをフィッチングします。次に同じIDのリクエストがUser.findをトリガーしない場合は、どのような実装でもかまいません。共有ハッシュなどのように、この例ではsession []を使用しましたが、これを機能させる方法のヒントを提供していただければ幸いです。ここでは、多くのユーザー間でキーを共有するのではなく、実際の認証を探していません。ルビープロセス。
nginxでシンラックのインスタンスを10個実行するとします。そのため、セッション/ハッシュをすべてのプロセスと共有したいと思います。
ruby-on-rails - サブドメインレール3とラックを除くwww以外をwwwに書き換えます
www以外をwwwに書き換えることができる必要がありますが、(www以外の)サブドメインが存在する場合はそうではありません。
したがって、example.comから-> www.example.comになりますが、sub.example.comはsub.example.comのままです。
私はRails3にいます。これは、Rackミドルウェアを使用して実行する必要があるようですが、問題はこれがマルチテナントアプリであるため、TLDが任意のドメインになる可能性があることです。
これは私が今のところいるところです:
任意のポインタをいただければ幸いです。
ruby-on-rails - RailsがCLIから実行されているのか、コンソールから実行されているのか、サーバーとして実行されているのかを判断するにはどうすればよいですか?
Bonjourを使用してローカルネットワークアプリでアプリケーションをアナウンスするためのミドルウェアがありますが、Railsがrakeからまたはコンソールを介して呼び出されたときにもサービスをアナウンスします。
これらのケースを除外し、Railsがサーバーとして実行されている場合にのみBonjourミドルウェアを使用したいと思います。
proc
ミドルウェア構成は、 :を使用して特定の条件下でミドルウェアを除外するprocを受け入れます。
しかし、RailsがCLIから呼び出されたのか、コンソールから呼び出されたのか、サーバーとして呼び出されたのかを判断するにはどうすればよいですか?
ruby-on-rails - Rails でオンデマンドでログを無効/有効にするスマートな方法
ログのサイズが原因で Papertrail アドオンが狂ってしまった Heroku Cedar スタックで Rails アプリ (v 3.1.10) を実行しています。
私のアプリは非常に冗長で、ログは巨大になっています (本当に巨大です):
1 つのフィールドで大量のデータをシリアル化すると、巨大な SQL 要求が発生することがあります。私のモデルにはたくさんあります:
私のAS3 Flashアプリがjsonの大きなセットを扱っているおかげで...
レンダリングするパーシャルがたくさんある場合があります。
ここでは大きな問題ではありませんが、Jamiew が処理するため、このケースも追加しました。以下を参照してください...
場合によっては、同じページに多数の SQL クエリがあるためです。
ここにあるのは、大きく (あまりにも) 複雑なアプリです...ええ...
多くのパラメーターがあるため、場合によっては次のようになります。
AS3 Flash アプリは大きな json データをコントローラーに送信します...
(悪名高い) 有名な「Assets パイプラインのログ記録の問題」については言及しませんでした。これを処理するために quiet_assets ジェムを使用しているためです
。
それで... 私は何を試しましたか?
1: Dennis Reimann のミドルウェア ソリューション:
http://dennisreimann.de/blog/silencing-the-rails-log-on-a-per-action-basis/
2: Spagalocco の逸品 (ソリューション #1 に触発されたもの):
https://github.com/spagalloco/silencer
3: jamiew の monkeypatches (ソリューション #1 に触発されたもの + おまけ):
https://gist.github.com/1558325
期待どおりに機能しているものは何もありませんが、近づいています。
次のように ApplicationController でメソッドを使用したいと思います。
...そして、任意のコントローラーメソッドで呼び出します:custom_logging({:remove_sql_requests=>1, :remove_rendered=>1})
あなたはアイデアを得ました。
それで、これを処理するための良いリソースがオンラインにありますか? たくさんのアドバイスありがとうございます...
ruby-on-rails-3 - rspec-rails がミドルウェアをスキップするのはなぜですか?
HTTP Accept-Language ヘッダーを介してロケール切り替えを追加したい Rails アプリ (3.2.12) があります。
それを達成するために私がしたこと:
私は自分のGemfileにrack-contribを追加しました:
run bundle install
、ミドルウェアを my に追加しましたconfig/application.rb
:
リクエストenv myコントローラーを調べます:
私が実行する仕様はコントローラーの仕様であり、それが含まrender_views
れています。
私の問題:
rack.locale
リクエスト環境にキーがありません。再確認しましたが、最後の直前にrake middlware
リストされています。Rack::Locale
run MyApp::Application.routes
いくつかのデバッグの後、実行時にミドルウェアが呼び出されないことがわかりました
しかし:同じコードを実行するとscript/rails s thin
、リクエストenvでより多くのキーが得られます。つまり:
では、質問は、RSpec が Rack ミドルウェアの採用を拒否するのはなぜですか?
ruby-on-rails - ミドルウェアの @env ハッシュの変数 HTTP_X_FORWARDED_HOST は何ですか?
Rack ミドルウェア フィルターでは、call メソッドが env ハッシュ変数を取ることがわかっています。誰かの Rack ミドルウェア コードを調べていると、
誰かが HTTP_X_FORWARDED_HOST の意味を説明できますか? リクエストの発信元のホストですか?
ruby-on-rails - Rack ミドルウェアを使用して Cookie を設定し、Cookie を有効にして応答を送信する方法
Rack Middleware を使用して Cookie を設定し、同じ要求応答サイクルで有効な Cookie を使用して応答を送信しようとしています。
コンテキストは次のとおりです。私は、米国モードと英国モード (異なるロゴ、ナビゲーション バー、スタイルなど) の 2 つのモードを持つ Web サイトで作業しています。英国の訪問者が初めてそのページにアクセスしたときに、ブラウザに「英国モード」の Cookie を設定するだけでなく、ページの英国バージョンもレンダリングしたいと考えています。これまでの私のコードは次のとおりです。
英国の訪問者が初めてページにアクセスすると、Cookie に「英国モード」が設定されますが、ページのデフォルトの米国バージョンが表示されます。Cookie が有効になり、英国の訪問者に英国モードが表示されるのは、2 番目の要求の後でのみです。
Cookie を同時に設定し、1 つの要求応答サイクルで有効な Cookie を使用して応答を返すというアイデアはありますか?