問題タブ [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.
jquery - Rails Respond_to がモデル検証エラーと ajax フォームでどのように機能するかの良い例
私が欲しいもの
新しい Rails Respond_to Controller Api を ajax フォームで使用します。オブジェクトがレールを検証しない場合、Json エラー オブジェクトが返され、「ajax:error」イベントがトリガーされます。各エラーを対応するフォーム フィールドの横/下に表示したい (フォーマットを使用しています)。
ここで私の例..
コントローラ:
見る
js/コーヒースクリプト
すべてのエラーを文字列に追加して表示するだけです..
json エラー オブジェクト
私の質問!
- 自分でjsonを解析する必要がありますか?
- フィールドにエラー メッセージを追加するにはどうすればよいですか?
- 標準のjquery-ujsの一部ではないでしょうか?
ruby-on-rails - Rails:非RESTfulアクション後のrespond_withRESTfulコントローラーテンプレート
それ以外の場合はRESTfulコントローラーに「公開」アクションを追加しようとすると、「テンプレートがありません-テンプレート投票/送信がありません」エラーが発生します。submission.html.haml
明らかに、存在しない(そして存在すべきではない)ビューを探しています。
どちらの場合も、このコントローラーの「表示」アクションで応答したいと思います。しかし、構文がどうあるべきかわからない。
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?
ruby-on-rails - Rails:コントローラーで、htmlではなくjsで他のアクションをレンダリングする方法は?
コントローラーには 2 つのアクションがあります。
最初にfind
アクションを呼び出し、次にアクションを呼び出しますresult
が、html 形式であるという問題があります。したがって、「format.js」はトリガーされません。
find
アクションの最後に、アクションresult
を js 形式でレンダリングするにはどうすればよいですか?
どうもありがとう !
ruby-on-rails-3 - Rails Respond_with -- POST がデータではなく URL を返すのはなぜですか?
これは、「どうやってこれを機能させるか」ではなく、「なぜこのように機能するのか」という問題です。
私のアプリは、JSON を返すサード パーティの REST API を呼び出しており、独自のJSON API の一部として結果を返しています。
私は Rails 3respond_to
とrespond_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 実装の理論的根拠を理解しようとしているだけです。
ruby-on-rails - Railsは2つ(またはそれ以上)のモデルとそれらの仮想属性のいくつかを含めるためにjson形式に応答しますか?
コントローラーアクションの1つで、プロジェクトをユーザーに割り当てています。jsonリクエストに、ユーザーに関する情報とプロジェクトに関する情報を使用して応答したいと思います。現時点では、次のようなすべてのデータベース属性を確認できます。
そのため、firebugコンソールでは、コンソールに応答オブジェクトが表示されます。
JSON応答でモデルと一緒に仮想属性を返すことができる可能性はありますか?
ありがとう!
ruby-on-rails - コントローラーがレンダリングするために解決した形式を確認する方法
次のコードを使用した Rails コントローラー アクション:
コントローラーが解決する形式、つまり「HTML」または「json」をログに記録するにはどうすればよいですか? format
タイプはCollectorです。フォーマットを示す文字列を取得する方法はありますか?
ruby-on-rails-3 - Rails 3リクエストタイプが*/*の場合にレスポンスタイプを強制する方法
before_filter
リクエストとパラメーターのさまざまな側面に応じて、レスポンスタイプをデフォルトにしたいがあります。例えば、
respond_to do |format|; format.html { ... }; format.json { ... }
クライアントの条件に応じて が適切にレンダリングされるという考えです。一部のクライアントはタイプとして入ってきて*/*
(おそらくこれはrequest.content_type
?)、これらを強制的に HTML 応答にしたいと考えています。ただし、機能していないようです。各ルートのデフォルトタイプを設定せずに、これを行うためのクリーンな方法は何ですか? respond_to
つまり、応答タイプを要求に挿入して、それに応じてスイッチを入れたいだけです。
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クラス内に配置した場合:
このエラーが発生します:
どうすればこれを解決できますか?ありがとう
ruby-on-rails - Rails コントローラーの応答タイプを xml に設定する
私はレールにかなり慣れていません。Railsコントローラーの応答タイプをxmlに設定しようとしていますが、うまくいきません。Respond_to と Respond_with がどのように機能するかをよりよく理解する余裕は確かにありました。
ここに私のコントローラーがどのように見えるかがあります:
これにより、http の取得に失敗します。コントローラーを修正して応答タイプをxmlに設定する方法を教えてもらえますか? また、respond_to と Respond_with がどのように機能するかについての説得力のある 1-2 のライナーは素晴らしいでしょう!
みんな、ありがとう。