我想创建一个可嵌入的HTML <form>
,它可以发送到rails控制器。此表单将嵌入非rails网站。
您采取了哪种方法来创建这样的表单?我应该使用<iframe>
还是JS?还是完全不同的东西?
作为这个问题的第二部分,我还需要这个表单能够将事件“冒泡”到它嵌入的父页面中,这样我就可以捕获表单的所有字段拨打外部API,如Google Events或Marketo。
答案 0 :(得分:2)
您可以只包含普通的HTML form
,其动作设置为您需要的路线。
此表单将创建一个具有给定名称的员工:
<form action="http://example.com/employees?return_url=...some_url..."
method='post'>
<input name="employee[name]" type=text/>
<input type=submit value='create'/>
</form>
请确保在您的控制器中重定向回非导轨网站。当您的操作也在rails网站中使用时,您需要一些方法来指示您的操作应该重定向到哪里。
def create
employee = Employee.create(params[:employee])
if params[:return_url]
redirect_to params[:return_url]
else
redirect_to employee_path(employee)
end
end
还要确保为该操作停用forgery_protection。
class EmployeesController < ApplicationController
skip_before_filter :verify_authenticity_token, :only => [:create]
# actions
end