1

<form>Rails コントローラーに POSTする埋め込み可能な HTML を作成したいと考えています。このフォームは Rails 以外のサイトに埋め込まれます。

このようなフォームを作成するためにどのようなアプローチをとったのですか? <iframe>、または JSを使用する必要がありますか? それともまったく違うもの?

この質問の二次的な部分として、フォームのすべてのフィールドをキャプチャして呼び出しを行うことができるように、このフォームが埋め込まれている親ページにイベントを「バブルアップ」できるようにする必要もあります。 Google Events や Marketo などの外部 API。

4

1 に答える 1

3

formアクションが必要なルートに設定されている通常の HTML を含めることができます。

このフォームは、指定された名前の従業員を作成します。

<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
于 2013-06-13T23:56:09.113 に答える