Rails Ajax不更新

时间:2010-11-13 11:37:00

标签: ruby-on-rails ajax

如何在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

2 个答案:

答案 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解决了这个问题。