這是我的簡單ajax代碼。用新數據渲染當前頁面
發出請求,我得到響應,但我的視圖沒有用新數據呈現。我用新的html獲得了一個新的頁面,我要求這個新的頁面在當前頁面內呈現。
控制器 -
def list
@users = User.find(:all)
end
def show
respond_to do |format|
format.html { render :partial => "ajaxshow" }
format.js
end
end
視圖 -
<% @users.each do |c| %>
<%= link_to c.user_id, {:action => :show, :user_id => c.user_id, :remote => true } %>
<% end %>
局部 -
# cat _ajaxshow.html.erb
<div align="left" id="user_ajax">
<table width="1000px">
<tr><th>User ID</th><th>First</th><th>Last</th><th>ID</th><th>Email</th></tr>
</table>
日誌 -
Started GET "https://stackoverflow.com/users/show?remote=true&user_id=someuser" for 10.10.10.10 at 2012-04-17 04:01:09 -0400
Processing by UsersController#show as HTML
Parameters: {"remote"=>"true", "user_id"=>"someuser"}
Rendered users/_ajaxshow.html.erb (0.3ms)
Completed 200 OK in 2ms (Views: 1.3ms | ActiveRecord: 0.0ms)
我的猜測是:JavaScript的 – pguardiario 2012-04-17 08:27:48
@pguardiario - 見下面我的意見。我剛剛添加了一個js.erb但沒有結果。 – 2012-04-17 08:52:30
你如何添加這些數據?對我來說,你必須發佈這些數據似乎是明智的。所以正確的路徑是使用創建操作。你可以在這裏閱讀http://blog.madebydna.com/all/code/2011/12/05/ajax-in-rails-3.html和這裏http://net.tutsplus.com/tutorials/javascript-ajax/using-unobtrusive-javascript-and-ajax-with-rails-3/ – tommasop 2012-04-17 08:59:33