在我当前的控制器中,我有一个用 1 点更新模型链接的方法:
def modify_points
@link = Link.find(params[:id])
@link.points += 1
respond_to do |format|
if @link.update_attributes(params[:points])
format.html { redirect_to root_path }
format.js
else
format.js
end
end
end
在我的路线中:
put 'links/:id/vote' => 'links#modify_points', :as => 'modify_points'
而我的观点:
<%= link_to 'Vote', modify_points_path(link), :remote => true, :method => :put, :id => "modify_points" %>
但是每当我点击链接时,我只能在刷新页面后才能看到更新的信息。
编辑:我在链接视图文件夹目录中创建了一个 index.js.erb 文件,其中包含以下内容:
$('#modify_points').update("<%= escape_javascript(render(@link)) %>");
按下链接时,我在控制台中收到此错误:
PUT http://localhost:3000/links/1/vote 500 (Internal Server Error) jquery.js?body=1:8707
send jquery.js?body=1:8707
jQuery.extend.ajax jquery.js?body=1:8137
$.rails.rails.ajax jquery_ujs.js?body=1:74
$.rails.rails.handleRemote jquery_ujs.js?body=1:150
(anonymous function) jquery_ujs.js?body=1:300
jQuery.event.dispatch jquery.js?body=1:5096
elemData.handle