問題タブ [respond-to]

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

jquery - Rails Respond_to がモデル検証エラーと ajax フォームでどのように機能するかの良い例

私が欲しいもの

新しい Rails Respond_to Controller Api を ajax フォームで使用します。オブジェクトがレールを検証しない場合、Json エラー オブジェクトが返され、「ajax:error」イベントがトリガーされます。各エラーを対応するフォーム フィールドの横/下に表示したい (フォーマットを使用しています)。

ここで私の例..

コントローラ:

見る

js/コーヒースクリプト

すべてのエラーを文字列に追加して表示するだけです..

json エラー オブジェクト

私の質問!

  • 自分でjsonを解析する必要がありますか?
  • フィールドにエラー メッセージを追加するにはどうすればよいですか?
  • 標準のjquery-ujsの一部ではないでしょうか?
0 投票する
1 に答える
563 参照

ruby-on-rails - Rails:非RESTfulアクション後のrespond_withRESTfulコントローラーテンプレート

それ以外の場合はRESTfulコントローラーに「公開」アクションを追加しようとすると、「テンプレートがありません-テンプレート投票/送信がありません」エラーが発生します。submission.html.haml明らかに、存在しない(そして存在すべきではない)ビューを探しています。

どちらの場合も、このコントローラーの「表示」アクションで応答したいと思います。しかし、構文がどうあるべきかわからない。

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

ruby-on-rails - Object.respond_to? stuck in infinite loop

I'm building a Rails 3 gem that essentially modifies the records returned from an ActiveRecord query. One of the things I'm doing is overriding the method_missing and respond_to? methods, but it seems that my respond_to? definition is resulting in an infinite loop that is throwing a "SystemStackError: stack level too deep" error.

Here are my original definitions of these methods:

In trying to learn why this infinite loop was occurring, I restructured respond_to? with some "before" and "after" output to see where it's getting stuck.

When running, it appears that various callbacks and attribute methods run as expected, with a single before and after call for each:

However, any time I see a find callback, that appears to be caught in an infinite loop:

If I hack my respond_to?, then everything appears to run smoothly:

What am I doing wrong that I seem to need this hack? And how can I avoid it?

0 投票する
4 に答える
3825 参照

ruby-on-rails - Rails:コントローラーで、htmlではなくjsで他のアクションをレンダリングする方法は?

コントローラーには 2 つのアクションがあります。

最初にfindアクションを呼び出し、次にアクションを呼び出しますresultが、html 形式であるという問題があります。したがって、「format.js」はトリガーされません。

findアクションの最後に、アクションresultを js 形式でレンダリングするにはどうすればよいですか?

どうもありがとう !

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

ruby-on-rails-3 - Rails Respond_with -- POST がデータではなく URL を返すのはなぜですか?

これは、「どうやってこれを機能させるか」ではなく、「なぜこのように機能するのか」という問題です。

私のアプリは、JSON を返すサード パーティの REST API を呼び出しており、独自のJSON API の一部として結果を返しています。

私は Rails 3respond_torespond_withメソッドを使用していました。リクエストの場合GET、これは期待どおりに機能し、JSON を通過するだけです。

の場合はPOST、返されたオブジェクトから URL を作成して:locationオプションに渡すなど、さらに多くのことを行います。しかし、私のオブジェクトは単なる JSON (ActiveRecord ではない) であるため、エラーが発生します。

例えば...

サードパーティ API のラッパーが POST リクエストを発行すると、正常に返されます。Rails は 500 エラーを返し、次のようにログに記録されます。

Rails は、私の @products オブジェクトにロケーション URL の作成方法を認識させたいと考えています。

明確化:@productsサード パーティの API によって返されるオブジェクトは、純粋な JSON (上記のエラー ログ メッセージに埋め込まれている文字列) です。このエラーが発生するのは、Rails がオブジェクトをもっと何かにしたいように見えるためです。Rails の内部 API サポートでは、それは ActiveRecord オブジェクトです。

新しいrespond_with構文を古いスタイルに置き換えると

その後、すべてが機能します。そして、これは私がやったことなので、「どのように」の問題ではなく、「なぜ」という質問があります。

イントロダクションに関するRyan Daigle の投稿は、何が起こっているかを説明しています。

私の質問は:なぜrespond_withデータ (および HTTP ステータス) 以外のものを期待しているのですかPOST?

それが間違っていると言っているのではなく、Rails 実装の理論的根拠を理解しようとしているだけです。

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

ruby-on-rails - Railsは2つ(またはそれ以上)のモデルとそれらの仮想属性のいくつかを含めるためにjson形式に応答しますか?

コントローラーアクションの1つで、プロジェクトをユーザーに割り当てています。jsonリクエストに、ユーザーに関する情報とプロジェクトに関する情報を使用して応答したいと思います。現時点では、次のようなすべてのデータベース属性を確認できます。

そのため、firebugコンソールでは、コンソールに応答オブジェクトが表示されます。

JSON応答でモデルと一緒に仮想属性を返すことができる可能性はありますか?

ありがとう!

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

ruby-on-rails - コントローラーがレンダリングするために解決した形式を確認する方法

次のコードを使用した Rails コントローラー アクション:

コントローラーが解決する形式、つまり「HTML」または「json」をログに記録するにはどうすればよいですか? formatタイプはCollectorです。フォーマットを示す文字列を取得する方法はありますか?

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

ruby-on-rails-3 - Rails 3リクエストタイプが*/*の場合にレスポンスタイプを強制する方法

before_filterリクエストとパラメーターのさまざまな側面に応じて、レスポンスタイプをデフォルトにしたいがあります。例えば、

respond_to do |format|; format.html { ... }; format.json { ... }クライアントの条件に応じて が適切にレンダリングされるという考えです。一部のクライアントはタイプとして入ってきて*/*(おそらくこれはrequest.content_type?)、これらを強制的に HTML 応答にしたいと考えています。ただし、機能していないようです。各ルートのデフォルトタイプを設定せずに、これを行うためのクリーンな方法は何ですか? respond_toつまり、応答タイプを要求に挿入して、それに応じてスイッチを入れたいだけです。

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

sinatra - シナトラ+ラックルーティング

このws_app.rbのようなアプリファイルがあります。

modules/Battery.rbは次のようになります。

controller/BatteryController.rbファイルは次のようになります。

これは、Sinatraを通常どおり実行すると、次のように完全に機能します。

次に、ここに移動します。

期待しているJSONを取得します。

しかし、これをCherokee Webサーバーにデプロイする必要があるため、このためのラックconfig.ruファイルを作成します...

だから私はファイルmpthmiws.rbを持っています

そして、以下を含むconfig.ruファイル

私が走るとき

そしてここに行きます:

しかし、それから私は有名な「Sinatraはこのくだらないことを知らない-get'/battery/1.json' do"HelloWorld"endを試してみてください

controller / BatteryController.rbファイルから最初のルートを取得し、次のようにws_app.rbファイルのHMIMPTクラス内に配置した場合:

このエラーが発生します:

どうすればこれを解決できますか?ありがとう

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

ruby-on-rails - Rails コントローラーの応答タイプを xml に設定する

私はレールにかなり慣れていません。Railsコントローラーの応答タイプをxmlに設定しようとしていますが、うまくいきません。Respond_to と Respond_with がどのように機能するかをよりよく理解する余裕は確かにありました。

ここに私のコントローラーがどのように見えるかがあります:

これにより、http の取得に失敗します。コントローラーを修正して応答タイプをxmlに設定する方法を教えてもらえますか? また、respond_to と Respond_with がどのように機能するかについての説得力のある 1-2 のライナーは素晴らしいでしょう!

みんな、ありがとう。