我想创建一个<form>
发布到 rails 控制器的可嵌入 HTML。此表单将嵌入到非 Rails 站点上。
您采用什么方法来创建这样的表单?我应该使用<iframe>
还是 JS?还是完全不同的东西?
作为这个问题的次要部分,我还需要这个表单能够将事件“冒泡”到它嵌入的父页面中,这样我就可以捕获表单的所有字段来调用外部 API,例如 Google Events 或 Marketo。
我想创建一个<form>
发布到 rails 控制器的可嵌入 HTML。此表单将嵌入到非 Rails 站点上。
您采用什么方法来创建这样的表单?我应该使用<iframe>
还是 JS?还是完全不同的东西?
作为这个问题的次要部分,我还需要这个表单能够将事件“冒泡”到它嵌入的父页面中,这样我就可以捕获表单的所有字段来调用外部 API,例如 Google Events 或 Marketo。
您可以只包含正常的 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 站点。当您的操作也用于 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