我正在尝试(仍然)获得ajaxful-rating以使用我的rails安装。我没有用原型安装我的应用程序因为我喜欢jQuery。
教程(以及其他所有人)已经说过用它来渲染更新
render :update do |page|
page.replace_html id, ratings_for(@entry, :wrap => false, :dimension => params[:dimension])
page.visual_effect :highlight, id
end
然而,我得到一个'未定义的局部变量或方法'id''...我可以通过标准来获得没有ajax 的gem :
respond_to do |format|
format.html { redirect_to @entry }
format.js { render :layout => false}
end
我想我总是可以做一个jQuery.ajax调用,但是我想尽可能紧密地将它实现到我的rails应用程序中 - 我想学会以正确的方式去做。 :)
请请帮忙。我绝对是求助于求助。
答案 0 :(得分:1)
我没有尝试过,因为我更喜欢将所有东西分离(也就是说,页面应该可以工作而不依赖于javascript),但是看看jquery rails plugin http://rubygems.org/gems/jquery-rails
它可能会做你想要的,因为它应该是原型的完全替代品。
但是,错误听起来像是缺少一些初始化。请尝试使用params[:id]
代替。
答案 1 :(得分:1)
id
应该是您尝试用新评级替换的评级元素的dom id。因此,请查看id
是什么,并使用该字符串替换代码中的id
。
您也可以手动编写JS代码而不依赖于RJS。
像这样的东西
$("#YOUR_ID_HERE").html("<%= escape_javascript ratings_for(@entry, :wrap => false, :dimension => params[:dimension]) %>");
$("#YOUR_ID_HERE").effect("highlight");
将此代码放在您的视图中,将其命名为your_action.js.erb
(当然,将your_action替换为您的操作名称)。那么你的标准respond_to块应该可以工作