【问题标题】:How to create embeddable HTML form from a Rails application如何从 Rails 应用程序创建可嵌入的 HTML 表单
【发布时间】:2013-06-13 20:07:28
【问题描述】:

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

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

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

【问题讨论】:

    标签: html ruby-on-rails embed


    【解决方案1】:

    您可以只包含普通的 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
    

    【讨论】:

    • 你确定这是安全的吗?就不能有人过来开始向您的数据库发帖吗?
    • 你是对的,但这应该通过不在本问题范围内的身份验证来处理。
    猜你喜欢
    • 1970-01-01
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    相关资源
    最近更新 更多