如何在rails 2.3.8中使用Ajax更新页面的一部分?
我正在尝试制作带按钮的日历,以便进入下一个月和前几个月。点击按钮,我想要更改日历而不重新加载整个页面。
我的按钮滚动月份看起来像这样:
<%= link_to_remote "<",:update=>'calendar',:url=>{:action=>'ajax_calendar',:month => (@date.beginning_of_month-1).strftime("%Y-%m")} %>
这是我的主页,我已经渲染了部分。
index.html.erb
<div id="calendar">
<%= render :partial=>'calendar' %>
</div>
当我尝试使用firebug进行调试时,ajax调用正在被正确执行,我也从服务器获得了正确的响应,但是id'calender'没有得到更新。
有人可以指出我做错了吗?
提前致谢。
编辑:添加控制器
def ajax_calendar
@events = Event.all
@date = params[:month] ? Date.parse(params[:month].gsub('-', '/')) : Date.today
render :partial => 'calender'
end
答案 0 :(得分:0)
我认为rails在更新之前需要url参数。尝试像这样切换订单:
<%= link_to_remote "<", :url=>{:action=>'ajax_calendar',:month => (@date.beginning_of_month-1).strftime("%Y-%m")}, :update=>'calendar' %>
然而,这可能不是它。你的link_to_remote看起来不错,它可能是控制器里的东西。你能告诉我们你的操作控制器代码吗?
答案 1 :(得分:0)
由于同时使用了prototype和jquery,我收到了这个错误。删除jQuery解决了这个问题。