問題タブ [actiondispatch]

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 に答える
2297 参照

ruby-on-rails - ミドルウェアはどのように削除されますか?

rack-timeout は Gemfile に含まれていますが、本番環境のミドルウェアとしてのみ必要です。したがって、初期化子には次のものがあります。

この行の前後を調べると、rack-timeout がアレイから削除されていることがわかります。とにかく、リクエストはまだタイムアウトしており、gem にすばやく「プット」すると、それが実際に原因であることがわかります。

これは、delete が呼び出される前にミドルウェア スタックが既に構築されているためですか? または、すべてのリクエストでスタックが読み取られますか? その場合、何が問題になる可能性がありますか?

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

ruby-on-rails - Rails、絶​​対的な最低レベルで生のリクエストデータにどのようにアクセスしますか?

Railsrequestオブジェクトは、リクエストのライフサイクルの最も早い時期にいつ利用できますか?基本的に、リクエストが最初にリクエストオブジェクトとして利用できるのはいつですか、またどのオブジェクトで利用できますか?ActionDispatch

からリクエストパラメータにアクセスできますTester::Applicationか?もしそうなら、どのように?そうでない場合は、環境を使用するのはどうですか?その情報はいつ設定されますか?

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

ruby-on-rails - Rails で特定のファイルの max-age を制御するにはどうすればよいですか?

Rails で静的アセットを提供しています。それらのほとんどは名前にハッシュが含まれており、遠い将来の有効期限が設定されています。しかし、1 つのファイルについては、名前にハッシュを付けて提供することはできないため、有効期限を制御する必要があります。

すべての静的アセットに適用される application.rb にこれがあります。

1 つのファイルだけに別の max-age を設定する方法はありますか? ActionDispatch::Static特定のファイルの値を後で変更する新しいミドルウェアを作成できることはわかっています (この記事を参照)...しかし、これは、静的アセットではないものであっても、すべての単一の要求に対して実行されます。よりエレガントなソリューションはありますか?

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

ruby-on-rails-3 - パス文字列をコントローラー+アクション+パラメーターに変換するにはどうすればよいですか?

(私はこれに対する答えを見たと確信していますが、何分も掘った後はそれを見つけることができません。答えるのは簡単なはずです...)

動機

getコンソールでは、次のようなパス引数を使用してメソッドを呼び出すことができます。

これにより、が呼び出さActionDispatch::Integration::RequestHelpers#getれ、 "/ posts / 321"が適切なコントローラーとアクションおよびパラメーターに変換されます(例:{:controller => "posts"、:action => "show"、:id =>"321"})。

しかし、コントローラーのテストではそれを行うことはできません。同じ効果を得るには、次のものが必要です。

これは、getメソッドがによって定義されているためActionController::TestCase#getです。これは、アクションとパラメーターが既に解析されていることを前提としています。

:controller、:action、および任意のパラメーターを手動で入力するテストを作成できますが、それはエラーを発生させる良い方法のようです。

質問

posts_path(321)文字列を解析して、に渡すのに適した適切な:controller、:action、およびパラメーターに変換するメソッドはありますActionController::TestCase#getか?

これにより、テストの作成が簡単になり、エラーが発生しにくくなります。

[編集:: controllerと:actionに一意にマップするには、HTTP動詞( get)とパス( )が必要であることに気付きましたが、問題はまだ残っています...]/posts/321

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

ruby - Rails で未操作のマルチパート HTTP リクエストを転送する

わかりました、これは説明するのが少し難しくなりますので、ご容赦ください...

ESRI ArcGIS JavaScript API 用に作成された大規模な JavaScript コードベースを含む Rails アプリを使用して、ESRI ArcGIS Server に格納されている空間データを操作します。ESRI ArcGIS JavaScript API は、一般に「ArcGIS Server プロキシ」と呼ばれるものを使用して、トークン ベースの認証を必要とするか、URL 内で直接処理するには長すぎる ArcGIS Server サービスにリクエストを転送します。AGS プロキシは、渡された URL に HTTP リクエストを送信するだけで、元のリクエストとともに渡された追加のパラメーターを ArcGIS Server サービスに転送します。ArcGIS Server サービスは、実際の面倒な作業を行い、JSON で応答します。AGS プロキシの詳細については、ArcGIS Resource Centerの次のページを参照してください。

AGS プロキシは ASP.Net、Java、および PHP フレーバーの ESRI によってのみ提供されるため、自由に AGS プロキシを Rails コントローラーとして記述しました。私がこのアプローチを取ることにしたのは、JSAPI がクロスドメイン リクエストをサポートしておらず、ホスティング上の理由から、Rails アプリ内で PHP を提供したり、JRuby 上でアプリを実行したりしたくないからです。私の Rails AGS プロキシは、添付ファイル エディター機能で発生するマルチパート リクエストを除いて、これまでに遭遇したすべての状況で動作します

マルチパート リクエストを機能させる試みでは、Faraday のシンプルさとマルチパート リクエストのサポートにより、Faraday を使用して ArcGIS Server サービスへの HTTP リクエストを作成することにしました。マルチパートリクエストを実行しようとする私のコードは次のとおりです。

「agsparams」変数は、ArcGIS Server に渡されるパラメーターのハッシュです。

このコードを実行しようとすると、実際のリクエストが行われている行で Ruby エラーが発生し、次のエラーが表示されます。

コントローラーで params ハッシュをダンプすると、次のようになります。

(これが StackOverflow に表示されるように、いくつかの括弧を削除しました。)

「local_path」メソッドを呼び出していないので、どこで呼び出されているのかわかりませんが、これは、理解できない ActionDispatch に関連付けられているある種の組み込み機能であると思います。オーバーライドする必要がある ActionDispatch のメソッドはありますか? 私は、ArcGIS Server がアップロードできるように、ファイル入力パラメーターを ArcGIS Server に転送したいだけなのに、指定したファイルのアップロードを ActionDispatch が試みているという予感があります。Faraday::UploadIO を使用したいとは思いません。パラメータを ArcGIS Server に転送する必要があるだけだと思う​​のですが、間違っている可能性があります。ここからどこへ行くの??

追加のデューデリジェンスとして、マッピング JavaScript が AGS プロキシの他のフレーバーで動作することを確認しました。また、Wireshark で動作中のマルチパート プロキシ リクエストを検査し、それらのリクエストを Rails AGS プロキシで作成されたリクエストと比較しましたが、一貫しているように見えます (ヘッダーとパラメーターは正しく見えます)。添付ファイルを追加しようとしているデータは、実際には添付ファイルを受け入れるように適切に構成されています。私は立ち往生しており、本当に助けが必要です。

私の環境について少し: 私のアプリは Ruby 1.9.2 の Rails 3.2 で書かれています (私は現在、CarrierWave と Fog を使用して、アプリの他の非マッピング部分の添付ファイルを処理しています)。ArcGIS JSAPI 2.8/Dojo 1.6 を介して、ArcGIS Server 10.1 を実行しているサーバーに投稿しようとしています。

前もって感謝します...

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

ruby-on-rails - 認証Ruby on Railsで存在しないCookieを処理する

Ruby on Rails アプリでユーザー認証を設定しようとしています。app/controllers/application_controller.rb に次のコードがあります。設定される前に remember_token Cookie を参照しようとすると、コードが失敗します。これを修正するにはどうすればよいですか? cookies.has_key(:remember_token) (以下を参照) でそれを実行しようとしましたが、cookie はハッシュではないため失敗しました (私が思うに)。

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

ruby - ActionDispatchエラーにアクセスするレール

保存する前に、このリクエストのデータを変更しようとしています

リクエスト

コントローラ

このコードでこのエラーが発生するのはなぜですか? このエラーが解決された場合、このコード:pictureはハッシュ内のすべての配列に対して新しい画像オブジェクトを作成するために機能しますか?

0 投票する
3 に答える
9319 参照

ruby-on-rails - アクションディスパッチとは?

ActiveRecord、ルーティング、マイグレーションなど、Rails の基本的な概念についてはかなり理解しています。理解に苦労しているのは、ActionDispatch の 1 つです。それが何であるかについての平易な英語の説明 (または実際の説明) を見つけることができません。それで、それは何ですか?