问候,
我有一个应用程序,其中包含一个日历作为课程的替代索引视图(Project has_many Courses)。我有两个箭头导航到下一个/上个月,它通过AJAX工作。现在,这是我更新日历的行动:
def update_calendar
@project = Project.find params[:id]
@date = Date.parse(params[:date]).beginning_of_month
@courses = @project.courses.all(:conditions => {:date => (@date - 1.month)..(@date + 1.month)})
respond_to do |format|
# format.html { redirect_to :action => 'index' }
format.js { render :partial => 'calendar', :locals => {:calendar_date => @date, :courses => @courses} }
end
end
重要的部分是format.js { ... }
。我认为它应该只回答js / AJAX请求,但事实并非如此。例如,当我点击URL http://localhost:3000/projects/1/update_calendar?date=2010-08-01时,它会呈现部分。我不希望这种行为,我只是希望它在通过AJAX进入时正确回答。我需要使用request.xhr?
吗?什么是format.js { ... }
应该做的比?
祝你好运
托拜厄斯
答案 0 :(得分:0)
当有人使用html请求进行该操作时,你需要告诉它你想要发生什么,即你需要重新放入你的format.html块。如果你没有括号,它将执行默认操作显示update_calendar视图的行为。您可能希望重定向到不同的操作。