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

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

ruby-on-rails - Ruby/Rails/Rack コードの「use」キーワード/単語

最近、 goliathやミドルウェアなどにuse関連するコードを調べていたときに、Ruby のコードで ,という言葉をたまたま目にしました。includeextendrequire

useこのキーワードが存在する理由と、 include/との違いを誰かが説明できますかrequire? どのように機能し、いつ使用するのですか?

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

ruby-on-rails - ラックエラーの取得Rack::Lint :: LintError:ステータスは整数として表示される100以上である必要があります

ラックベースのrubyアプリを作成しようとしていますが、ここではまだ新しいので、ruby1.9.2-p180を使用しています。

私のconfig.ruファイルには次のものがあります。

ミドルウェア認証の主な問題は、単純に、リクエストのパラメータが2つ未満の場合は、MyAppを続行せず、何かを出力することです(テスト用):

ラックアプリを実行すると:

そして、結果を取得してみてください:

次のエラーが発生し続けます:

もちろん、本番モードで実行した場合、このエラーは発生しません。

どんな助けでもここでいただければ幸いです。

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

ruby-on-rails - ラックアプリケーションとセッション/ハッシュを共有する

私はRackを初めて使用し、それをいじって遊んでいます。すべてのRackアプリ間でセッションまたはハッシュテーブルを共有したいと思います。

次のconfig.ruがあるとしましょう

Authがメモリ内のuser_idをチェックするようにしたいのですが、リクエストが初めての場合は、データベースからのデータをフィッチングします。次に同じIDのリクエストがUser.findをトリガーしない場合は、どのような実装でもかまいません。共有ハッシュなどのように、この例ではsession []を使用しましたが、これを機能させる方法のヒントを提供していただければ幸いです。ここでは、多くのユーザー間でキーを共有するのではなく、実際の認証を探していません。ルビープロセス。

nginxでシンラックのインスタンスを10個実行するとします。そのため、セッション/ハッシュをすべてのプロセスと共有したいと思います。

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

ruby-on-rails - サブドメインレール3とラックを除くwww以外をwwwに書き換えます

www以外をwwwに書き換えることができる必要がありますが、(www以外の)サブドメインが存在する場合はそうではありません。

したがって、example.comから-> www.example.comになりますが、sub.example.comはsub.example.comのままです。

私はRails3にいます。これは、Rackミドルウェアを使用して実行する必要があるようですが、問題はこれがマルチテナントアプリであるため、TLDが任意のドメインになる可能性があることです。

これは私が今のところいるところです:

任意のポインタをいただければ幸いです。

0 投票する
8 に答える
9367 参照

ruby-on-rails - RailsがCLIから実行されているのか、コンソールから実行されているのか、サーバーとして実行されているのかを判断するにはどうすればよいですか?

Bonjourを使用してローカルネットワークアプリでアプリケーションをアナウンスするためのミドルウェアがありますが、Railsがrakeからまたはコンソールを介して呼び出されたときにもサービスをアナウンスします。

これらのケースを除外し、Railsがサーバーとして実行されている場合にのみBonjourミドルウェアを使用したいと思います。

procミドルウェア構成は、 :を使用して特定の条件下でミドルウェアを除外するprocを受け入れます。

しかし、RailsがCLIから呼び出されたのか、コンソールから呼び出されたのか、サーバーとして呼び出されたのかを判断するにはどうすればよいですか?

0 投票する
2 に答える
961 参照

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})

あなたはアイデアを得ました。

それで、これを処理するための良いリソースがオンラインにありますか? たくさんのアドバイスありがとうございます...

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

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::Localerun MyApp::Application.routes

いくつかのデバッグの後、実行時にミドルウェアが呼び出されないことがわかりました

しかし:同じコードを実行するとscript/rails s thin、リクエストenvでより多くのキーが得られます。つまり:

では、質問は、RSpec が Rack ミドルウェアの採用を拒否するのはなぜですか?

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

ruby-on-rails - ミドルウェアの @env ハッシュの変数 HTTP_X_FORWARDED_HOST は何ですか?

Rack ミドルウェア フィルターでは、call メソッドが env ハッシュ変数を取ることがわかっています。誰かの Rack ミドルウェア コードを調べていると、

誰かが HTTP_X_FORWARDED_HOST の意味を説明できますか? リクエストの発信元のホストですか?

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

ruby-on-rails - Rack ミドルウェアを使用して Cookie を設定し、Cookie を有効にして応答を送信する方法

Rack Middleware を使用して Cookie を設定し、同じ要求応答サイクルで有効な Cookie を使用して応答を送信しようとしています。

コンテキストは次のとおりです。私は、米国モードと英国モード (異なるロゴ、ナビゲーション バー、スタイルなど) の 2 つのモードを持つ Web サイトで作業しています。英国の訪問者が初めてそのページにアクセスしたときに、ブラウザに「英国モード」の Cookie を設定するだけでなく、ページの英国バージョンもレンダリングしたいと考えています。これまでの私のコードは次のとおりです。

英国の訪問者が初めてページにアクセスすると、Cookie に「英国モード」が設定されますが、ページのデフォルトの米国バージョンが表示されます。Cookie が有効になり、英国の訪問者に英国モードが表示されるのは、2 番目の要求の後でのみです。

Cookie を同時に設定し、1 つの要求応答サイクルで有効な Cookie を使用して応答を返すというアイデアはありますか?