2015-04-21 95 views
0

我在ConversationsController中有一個名爲new的操作。我也有這方面的觀點,new.html.erb,其具有如下:在不重定向的情況下調用ruby操作/方法

<%= button_to "New", action: "save_it" %> 

在ConversationsController我有一個更大的動作,save_it,這是做的Redis數據庫的一些動作。

這裏的一切工作正常。當我點擊按鈕時,save_it操作正在運行,並且Redis數據庫操作也成功發生。

問題是我正在重定向到save_it.html.erb。有沒有什麼辦法可以撥打save_it,比如只執行數據庫命令而不重定向到其他地方?

回答

0

我想通了......我把我的save_it行動

/應用/助理/ conversations_ helper.rb

,而不是

/app/controllers/conversati ons_controller.rb

所以現在save_it處於conversations_helper.rb常規方法。這可以從new.html.erb通過創建一個普通的HTML按鈕

<input type="button" onclick=" <%= save_it -%> " value="save" /> 
1

你可以用remote:true條件調用它,使其成爲ajax調用。它會嘗試加載save_it.js.erb而不重新加載頁面。

<%= button_to "New", action: "save_it", remote: true %> 
0

您可以從您的控制器動作實現調用:

def save_it 
    # do stuff 
    render nothing: true 
end 

我想,這做的伎倆。

相關問題