1

我想创建一个<form>发布到 rails 控制器的可嵌入 HTML。此表单将嵌入到非 Rails 站点上。

您采用什么方法来创建这样的表单?我应该使用<iframe>还是 JS?还是完全不同的东西?

作为这个问题的次要部分,我还需要这个表单能够将事件“冒泡”到它嵌入的父页面中,这样我就可以捕获表单的所有字段来调用外部 API,例如 Google Events 或 Marketo。

4

1 回答 1

3

您可以只包含正常的 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
于 2013-06-13T23:56:09.113 回答