1

レールにGibbon gemを使用して、メールフォームにMailChimp Apiを含めようとしています。

メールの追加などは機能し、API からの正しいコールバックがコンソールに表示されますが、メール ID div が正しく変更される成功の場合を除いて、何も起こりません。

ケース スイッチが機能しないか、API から返されるコードを読み取れないようです。

ルートなどが正しく設定されている。

これが私のコントローラーです:

 class MailchimpformController < ApplicationController

  def index
  end

  def submit
    mailchimp_api_key = "mysecretapikey"
    mailchimp_list_id = "mysecretlistid"
    g = Gibbon.new(mailchimp_api_key)
    response = g.list_subscribe({:id => mailchimp_list_id,
                                :email_address => params[:email],
                                :double_optin => false,
                                :send_welcome => false})

    if(response.is_a?(Hash))
     puts response
    case response['code']
     when 502
      @js_email_error = "Invalid Address!"
     when 214
      @js_email_error = "Already signed up!"
     else
      @js_email_error = response['error']
    end
      @js_email_success = nil
    else
      @js_email_success = "Thanks!"
      @js_email_error = nil
    end
    respond_to do |format|
     format.js
    end
    end
  end

リストに新しいメールを追加する場合にのみ機能します。

index.html.erb

<%= form_tag submit_path, :class=> "form", remote: true do %>
    <%= text_field_tag :email, nil, :class => 'email', :type=>"email", :placeholder => 'Sign up for beta testing' %>
    <%= submit_tag "Absenden", :alt => "Absenden", class: "input-btn"%>
<% end %>

そしてJavaScriptのものsubmit.js.erb

<% if @js_email_error %>
$("#email").val("<%= @js_email_error %>");
<% end %>
<% if @js_email_success %>
$("#email").val("<%= @js_email_success %>");
<% end %>

Completed 500 Internal Server Errorまた、MailChimp API からの (正しい) コールバックを含む for POST /mailchimpform/submitも受信しています。そして、私はその理由を知りません。

4

1 に答える 1

1

さて、動作します。ギボン(設定)のエラー処理によるエラーでした。

g.throws_exceptions  = false

送信する前に、正しく機能するようになりました。

于 2013-03-07T14:04:09.527 に答える