簡體   English   中英

如何在Rails中的頁面內執行操作而不呈現新頁面

[英]How to perform an action within a page in Rails without rendering a new page

在我的rails應用程序中,我正在嘗試添加一個聯系人用戶彈出框,向用戶發送電子郵件消息。

我有javascript來顯示彈出窗體,這本身就是一個部分。

當用戶單擊聯系表單上的提交時,它會調用一個傳遞郵件的控制器操作。 提交消息后,我想保持在同一頁面上,但隱藏彈出框。 我的問題是,我無法獲得傳遞郵件的控制器操作,而不是呈現自己的視圖。 我試過了

render nothing: true

但這只是呈現一個空白頁面。

我的表格設置如下

= form_tag({:controller => 'users', :action => 'contact_user'}, :method => 'put') do 

在我的路線配置我有

resources :users
  collection do
     put 'contact_user'
  end

如果您通過AJAX提交表單,則可以執行您要執行的操作。

添加:remote => true表單將完成此操作:

= form_tag({:controller => 'users', :action => 'contact_user'}, :method => 'put', :remote => true) do 

現在,表單提交將作為AJAX請求命中您的控制器。 然后你應該能夠像你建議的那樣渲染任何東西,甚至做渲染一個.js.erb來執行一些Javascript代替(比如,隱藏你正在談論的彈出窗口)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM