0

記事コントローラーのインデックスアクションにリクエストを送信するURLmysite.com/articles.jsを呼び出すJavaScriptがあります。データをJSON形式でjavascript関数に返す必要がありますが、その前に、index.js.erbをレンダリングしてページ上の一部を更新したいと思います。

jqueryを介してURLを呼び出しています

var url = '/articles.js

$.get(url, function(newItemData) {
  someOtherFunction(newItemData)
}

.jsで終わるURLを呼び出すことは、AJAXリクエストを送信することと同じではありません(リモート=> true)?? リモート=>trueを介してajaxリクエストを送信する他のボタンとリンクがいくつかあり、.js.erbテンプレートはそのリクエストで自動的にレンダリングされます。URLをajaxリクエストとして呼び出す方法はありますか?

どんな助けでも大歓迎です。

ありがとう!

4

1 に答える 1

1

間違っている場合は訂正してください。ただし、コントローラーから 2 つのビュー (index.js.erbファイルと JSON 応答) をレンダリングしようとしているようです。Rails はrender,redirect_toまたはhead呼び出しを 1 つしかサポートしていないため、これは不可能です。

つまり、JavaScript コードを変更して 2 つの要求を送信する必要があります。1 つはビューを更新するため (render index.js.erb)、もう 1 つは JSON オブジェクトを返すためです。

.js終了 URLへのリクエストの送信は、AJAX リクエストの送信と同じではありません。そのためにはremote: true、前述のように を設定するか、JavaScript コードで AJAX リクエストを作成する必要があります ( $.ajax()jQuery を使用している場合は )。

Layouts and Rendering in Railsも参照してください。

それが役立つことを願っています!

于 2012-06-04T07:14:13.813 に答える