2016-09-20 80 views
0

我正在構建我的第一個rails應用程序,並希望實現一個喜歡帖子的按鈕。我可以找到關於如何做到這一點的大部分資源都涉及到使用AJAX。我想知道是否有一種方法來實現不使用AJAX的按鈕?是否有可能創建一個沒有AJAX的按鈕?

+0

你想用你的Like按鈕做什麼? –

+0

只是簡單地表明帖子已被喜歡並且增加了帖​​子的喜歡數量 –

+0

如果用戶想要喜歡你的帖子。你將如何實現沒有AJAX? –

回答

6

這裏是解決方案:它會重新載入網頁

  1. 假設目前你是你posts/index.html.erb頁面,所有posts展示在並在每一個崗位有一個按鈕。
  2. 創建一個名爲LikeController.rb的新控制器,它將創建/刪除帖子的喜歡。在你的路線中,使它成爲一個嵌套的資源,例如:它會更好地識別哪個帖子得到了類似按鈕的擊中。

    resources :posts do resources :likes end

  3. 創建兩個方法,在新創建的控制器createdelete

  4. 在您的文章like按鈕中創建create方法的鏈接,通過post_id
  5. create方法中爲該帖子創建一個新的Like。帖子可以從params[:post_id]找到,你已經通過類似的鏈接。
  6. 成功創建新Like後重定向到back
0

你可以利用王菲的WebSockets發送類似請求,JavaScript文件和更新,像動態計數。觀看鐵軌投射播客的Faye websockets並嘗試從您的視圖實施發送請求。我相信它會做你想要的工作。

0

你可以在沒有Ajax的情況下做到這一點(儘管我不確定你爲什麼強加這個約束)。

在頁面上有一個不可見的iframe,並讓你喜歡的按鈕提交一個目標爲iframe的表單。提交表單(即點擊您的按鈕)現在重新加載框架而不是整個頁面。框架中的內容可以與主機頁面進行通信(可直接在window.parent上調用方法或使用postMessage),以便更新頁面上的計數器等。

相關問題