2010-07-02 67 views
0

問候訪問,AJAXy動作經由「正常」的請求

我有一個包含一個日曆作爲課程的替代索引圖(項目的has_many課程)的應用程序。在那裏我有兩個導航到下一個/上個月的箭頭,它通過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

你需要告訴它你想要什麼,當有人去用HTML請求採取行動的情況發生,即你需要把你的format.html擋了回去。如果你沒有大括號它會執行顯示update_calendar視圖的默認行爲。您可能想要重定向到其他操作。

+0

啊,我明白了。儘管重定向可能不是一個好主意,因爲該頁面將被插入到日曆div中。但好東西,我可以渲染404或其他錯誤/異常。非常感謝! – Tobias 2010-07-02 09:12:30