我一直在閱讀有關respond_with。並在之前的幾個教程中使用它,但不真的認爲我完全理解它。如何使用Rails的respond_with創建操作和JavaScript?
我想現在要實現的功能是這樣的:我有類文章的項目清單,以及他們每個人都有一個鏈接,創建最喜愛的動作。當用戶點擊它時,會創建最喜歡的實例並將用戶重定向到主頁。我想這與AJAX工作,而無需刷新頁面,並執行一些JavaScript的商品項目,以讓用戶知道它已經成功地收藏最多。我使用的:遠程=>真正在相關鏈接屬性,所以動作沒有問題遠程執行,但我被困在如何執行該操作的.js.erb文件位。
我已經做在控制器中的以下內容:
class FavouritesController < ApplicationController
before_filter :authenticate
respond_to :html, :js
def create
@article = Article.find_by_id(params[:article_id])
current_user.Favourites.create(:article => @article)
redirect_to root_path
end
的問題是,我不知道我應該通過什麼參數respond_with。我試過用respond_with @article和respond_with無參數來替換重定向,並且當它們都工作時(create.js.erb被調用),我不明白爲什麼...
我不想'respond_with'任何東西,但只有當通過javascript執行動作時,create.js.erb纔會被調用。任何人都可以解釋一下a)爲什麼不管我傳遞給它什麼都響應,b)什麼是正確的方式來做到這一點?
順便說一句,我使用Rails 3.0
編輯:我的理解更好,如果我在下面的代碼中使用的respond_to喜歡,但我想了解respond_with更好。
respond_to do |format|
format.html { redirect_to root_path }
format.js
end
其實,這博客帖子是一個我看過只是要求在此之前。雖然這是非常好,幫助我不懂的題目更好,它不幫我這個特定問題 –
始終提供downvote有原因的,它可以幫助 – Ross