レール3.1があり、削除操作にajaxを使用すると、ページが手動で更新されずに更新されたコンテンツを表示していません。レールでajaxを呼び出すと、ページに更新情報が表示されない
奇妙なことは、すべての.js.erbコードが正しく発射されているようです。私もdestroy.js.erbに単純なpage.alert( 'hi')を入れてみましたが、削除後には警告が出ません。私は、jQueryを動作させるためにajax用の「スクリプト」タグを追加することについて言及している場所をいくつか見てきましたが、最新のチュートリアルでは言及していません。私はあなたの助けに感謝します。ここで
は、私は、サーバーログに見えるものです:destroy.js.erbの
...
<tr id = "category_35">
<td>High-end products</td>
<td class="deletebutton"><a href="/categories/35" data-confirm="Are you sure?" data-method="delete" data-remote="true" rel="nofollow">Delete</a></td>
</tr>
<tr id = "category_36">
<td>Economy products</td>
<td class="deletebutton"><a href="/categories/36" data-confirm="Are you sure?" data-method="delete" data-remote="true" rel="nofollow">Delete</a></td>
</tr>
内容:ここで
Started DELETE "/categories/35" for 127.0.0.1 at 2011-12-19 12:58:15 -0500
Processing by CategoriesController#destroy as JS
Parameters: {"id"=>"35"}
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = 5 LIMIT 1
Category Load (0.3ms) SELECT "categories".* FROM "categories" WHERE "categories"."user_id" = 5 AND "categories"."id" = ? LIMIT 1 [["id", "35"]]
SQL (0.5ms) DELETE FROM "categories" WHERE "categories"."id" = ? [["id", 35]]
Rendered categories/destroy.js.erb (0.5ms)
Completed 200 OK in 161ms (Views: 30.7ms | ActiveRecord: 3.2ms)
は私が生成されたHTMLページの出力ページのソースで見たものです:Gemfileで
('#<%= dom_id(@category) %>').fadeOut(700);
:
categories_controller.rbでgem 'jquery-rails'
:APP /ビュー/カテゴリ
def index
@categories = current_user.categories.all
respond_to do |format|
format.html # index.html.erb
format.json
format.js
end
end
def destroy
@category.destroy
respond_to do |format|
format.html { redirect_to categories_url }
format.js {
render :template => 'categories/destroy.js.erb', :layout => false
}
end
end
部分_categories_list.html.erbで/ index.html.erb
<h2>Categories</h2>
<table name="categories_list">
<%= render "categories_list" %>
</table>
<br />
<% @categories.each do |category| %>
<tr id = "<%= dom_id(category)%>">
<td><%= category.name %></td>
<td class="deletebutton"><%= link_to 'Delete', category, confirm: 'Are you sure?', method: :delete, :remote => true %></td>
</tr>
<% end %>
あなたのajaxコールはどのように見えますか – Rafay
私は別のajaxコールコードを入れていません。私は控えめな方法を使用しています。ご覧のとおり、私は削除ボタンに:remote => trueを入れます。それは役に立ちますか? – Tabrez
@ 3nigma、application.jsにセットアップコードを追加する必要はありますか?私はいくつかの古いチュートリアルにajaxの設定について言及していますが、最新のレール3.1でそれを必要としていますか? – Tabrez