問題タブ [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.
ruby-on-rails - 'respond_to'形式のステートメントで`:location => ...`と`head:ok`はどういう意味ですか?
私はRubyonRails 3を使用していますが、次のコードでの:location => ...
andhead :ok
ステートメントの意味、それらがどのように機能するか、およびそれらをどのように使用できるかを知りたいです。
ruby-on-rails - 私のリモートフォーム送信は、pages/_page.js.haml ファイルをレンダリングしようとしていますが、pages/_page.html.haml にしたいです
私はhamlを使用しているので、ここで行われているhtmlを理解していただければ幸いです。私の意見では読みやすいですが、一部の人々はそれを好まない:p
編集ページに次のようなフォームがあります。
フォームを送信するときに、コントローラー アクションで _page パーシャルをレンダリングする必要があります。現在、コントローラーアクションは「pages/_page.js.haml」をレンダリングしようとしていますが、「pages/_page.html.haml」を使用したいのは、編集済みのコンテンツを自動的に置き換える成功後の jquery フックがあるためです。新しいテキストを含むページの領域。
これが私の行動です:
他の場所...
したがって、これはすべて機能しています。間違ったビューをレンダリングしていることを除いて:(最初にページにアクセスすると、「pages/_page.html.haml」パーシャルを使用してそのセクションが入力され、このajaxアクションでコンテンツを更新するときにそれを使用したいと思います「pages/_page.js.haml」という名前でコンテンツを逐語的に複製する代わりに、同じ部分的なもの.アクションがjsコンテンツではなくhamlコンテンツをレンダリングするためにここで何が欠けているか知っている人はいますか?更新を正しく実行すると今、それは私にこのエラーを与えます:
html.haml ファイルをコピーし、名前が .js.haml の場合、期待どおりに動作します。
これは、フォームが送信されたときに rails.js が提供するイベントを処理するために使用している jquery です。
その部分は関係ないと思いますが、JS でページのコンテンツを更新しているときに表示されます。render
問題は、アクションの呼び出しまたはビューの呼び出しのいずれかにあると思われform_for
ます。どんな助けでも大歓迎です:)
ruby-on-rails - AbstractController::DoubleRenderErrorであってはならない
ユーザーコントローラーでこのdestroyメソッドを実行すると、次のエラーが発生します。
AbstractController :: DoubleRenderError(このアクションでは、Renderまたはredirectが複数回呼び出されました。renderまたはredirectを呼び出すことができるのは、アクションごとに最大1回だけであることに注意してください。また、redirectもrenderも、アクションの実行を終了しないことに注意してください。リダイレクト後にアクションを終了する場合は、「redirect_to(...)andreturn」のような操作を行う必要があります。):
私は正直に電話に一度だけ応答しているので、それは奇妙なものです。
これが私の行動です:
何か案は?
ruby-on-rails-3 - Rails3で「responds-toformat」を使用してワイルドカードを使用できますか?
次のコードを検討してください。
これで、多数の形式を指定できることがわかりましたが、他のすべての形式(この場合は.jxと.xml以外)を指定して、特定の形式をすべて明示的に指定する必要がないようにする方法はありますか?
「if-else」タイプの条件が欲しいと思います。これはで可能respond_to do |format|
ですか?
ruby-on-rails-3 - リクエストを受け取った後、リクエストの MIME タイプを変更するにはどうすればよいですか?
私の顧客は私の Rails アプリのリクエストを XML または HTML として送信しています。Rails 2.10 では、私のコントローラー アクションには、wants.html と want.xml を含む Responds_to ブロックがありました。私の顧客は、XML が必要な場合は Content-Type=text/xml および Accept=text/xml の HTTP ヘッダーを設定し、HTML のヘッダーはほとんど使用しませんでした。うまくいきました。
私の顧客の多くは、Accept=text/xml ヘッダーを最初から省略していましたが、Content-type=text/xml を設定している限り、respond_to ブロックが want.xml を起動したことがわかりました。Rails3 では、Accept=text/xml が設定されている場合、respond_to ブロックは (正しく) want.xml のみを起動します。
多くの顧客にプログラムを変更してもらうのではなく、リクエストが XML を必要としていることを rails3 に伝えるにはどうすればよいでしょうか? Content-Type が text/xml に設定されている場合は、Accept も強制的に text/xml にしようと考えています。
request.env ハッシュを次のように直接変更してみました。
しかし、それはうまくいきませんでした。Respond_to を完全に放棄して、次のようにすることもできます。
しかし、それは力ずくのようです。これを達成するためのより簡単な方法はありますか?
ruby-on-rails - この Respond_to オプションを変換して Rails 3 バージョンを使用するにはどうすればよいですか?
私が試したすべてのオプション(respond_to :js
コントローラーの上部に配置するなど)は、このようにうまく機能しません。
ruby-on-rails - json 形式をエイリアシングするカスタム形式の Respond_to は可能ですか?
YML ファイルから構築されたアプリケーションに json オブジェクトを返す状況があります。yml ファイルを解析して json として返すため、常に次のようにする必要があります。
(ただし) json になるカスタム形式を作成することで、この操作を短くしたいので、新しい MIME タイプを作成したくありません。
私の考えは書くことです:
これにより、views/mycontroller ディレクトリ内のmyaction.myformat.erbが自動的に検索され、yaml ファイルが自動的に解析され、json オブジェクトとして返されます。
これは可能ですか?はいの場合、どうすれば最終的にこれを行うことができますか?
編集 1: config/mime_types.rb で重要な提案を見つけました:
したがって、MIME タイプのエイリアスを作成できますが、最大の問題は、format.html のように、特定の形式のデフォルトのレンダリング アクションを定義する方法です。
私が書くなら
current_action.html.erb は自動的にレンダリングされますが、カスタム フォーマットをレンダリングする正しい方法を選択するにはどうすればよいですか?
編集2:
私はこのコードを作成することができました(コントローラー内で、私が構築したいくつかのヘルパーメソッドを介して):
次のように書くと、レールにそれを理解させることができます。
それはしなければなりません:
デフォルトで?
javascript - Rails 3でAJAXによってrespond_toを作成するにはどうすればよいですか?
AJAXを使用して送信するフォームがあります。フォームはにありFirstsController
ます。フォームをに送信する必要がありますSecondsController
。フォームが送信され、データが保存されます。次に、テキストでフォームを変更したいので、次のようにします。
そして、私はこのエラーが発生します:
JSリクエストを元に戻すにはどうすればよいFirstsController
ですか?+ヘルプ*.jsファイルが必要ですか?
javascript - remotipart のポストコミットから Javascript が実行されない
私は初心者の RoR プログラマーで、現在、remotipart を使用してファイルをアップロードし、POST 要求でコントローラーに送信した後、js を機能させようとしています。基本的に、送信ボタンをクリックした後、POST リクエストは正常に送信されますが、parse_bond_file.js.erb は SCRIPT ではなく OTHER として開始されます。これが私のコードです:
---upload.html.erb###
---issuer_controller.rb---
---parse_bond_file.js.erb---
助けてください。ありがとう!
ruby-on-rails - void Respond_to format.html format.js でのみ機能する必要があります
ruby on rails 3 のコントローラでvoid format.html レスポンスが欲しい。
たとえば、私のcomments_controller.rbで
私は、format.js 応答でのみ動作し、その後、new.js.erb からパーシャルをレンダリングしたいと考えています。これは私にとっては簡単な問題ではありませんが...
私が置く場合:
http://localhost:3000/comments/new
空白のページが表示されます:O.
このページを無効にするにはどうすればよいですか? たとえば、エラー 404 をレンダリングまたは表示します。
ありがとうございました!