在我的rails应用程序中,我正在尝试添加一个联系人用户弹出框,向用户发送电子邮件消息.
我有javascript来显示弹出窗体,这本身就是一个部分.
当用户单击联系表单上的提交时,它会调用一个传递邮件的控制器操作.提交消息后,我想保持在同一页面上,但隐藏弹出框.我的问题是,我无法获得传递邮件的控制器操作,而不是呈现自己的视图.我试过了
render nothing: true
Run Code Online (Sandbox Code Playgroud)
但这只是呈现一个空白页面.
我的表格设置如下
= form_tag({:controller => 'users', :action => 'contact_user'}, :method => 'put') do
Run Code Online (Sandbox Code Playgroud)
在我的路线配置我有
resources :users
collection do
put 'contact_user'
end
Run Code Online (Sandbox Code Playgroud)
如果您通过AJAX提交表单,则可以执行您要执行的操作.
添加:remote => true到您的表单将实现此目的:
= form_tag({:controller => 'users', :action => 'contact_user'}, :method => 'put', :remote => true) do
Run Code Online (Sandbox Code Playgroud)
现在,表单提交将作为AJAX请求命中您的控制器.然后你应该能够像你建议的那样渲染任何东西,或者甚至做渲染a之类的东西.js.erb来执行一些Javascript(比如,隐藏你正在谈论的弹出窗口).
| 归档时间: |
|
| 查看次数: |
1721 次 |
| 最近记录: |