2017-05-01 13 views
0

change-ruby gemを使用して、フォームパラメータを取得してChange.org APIを使用して送信します。私はRailsが新しく、このライブラリを適切に実装してコントローラで使用する方法を完全に理解していない可能性が高いです。Change.org APIを介してフォームパラメータを送信するための「シェルオブジェクト」の作成

私は、アクションにいくつかのパラメータを投稿するフォームをChangeControllerに持っています。このコントローラーでは、私はchange-ruby gemとそのリソースを含めようとしています。

現在、しかし、私はエラーを与えていますフォーム提出時に:私は新しい請願オブジェクト(petition = Petition.new(client))を作成しようとするライン上uninitialized constant Petitions::ChangeController::Petitionを。私は何が欠けていますか?

明らかに、私のアプリはエンジンを使用していますが、これはPetitionsと呼ばれることがあります。

ChangeControllerコード:

# Visit https://github.com/ericisaiah/change-ruby for documentation 
require 'change-ruby' 

module Petitions 

    include Change::Resources 

    class ChangeController < ApplicationController 

    def sign 
     client = Change::Requests::Client.new({ :api_key => ENV["CHANGE_API_KEY"], :secret_token => ENV["CHANGE_SECRET"] }) 

     # Get the petition (this is where the error occurs) 
     petition = Petition.new(client) 

     # Get the petition id from the Petition URL 
     petition_id = petition.get_id(params[:petition_url][:value]) 

     # Load the petition 
     petition.load(petition_id) 

     # Get the petition auth key 
     petition.request_auth_key({ 
     :requester_email => params[:requester_email][:value], 
     :source => params[:page_slug][:value], 
     :source_description => "Campaign page that is gathering signatures to help the petition." 
     }) 

     # Submit signature 
     petition.signatures.add_signature({ 
     :email => params[:sig_email], 
     :first_name => params[:sig_first], 
     :last_name => params[:sig_last], 
     :address => params[:sig_street], 
     :city => params[:sig_city], 
     :state_province => params[:sig_state], 
     :postal_code => params[:sig_zip], 
     :country_code => params[:sig_country], 
     :hidden => params[:sig_hidden] 
     }) 
    end 
    end 
end 
+1

この行にエラーが表示されますか? 'petition = Petition.new(クライアント)' –

+0

私はそうです。これは、Clientオブジェクトの作成がうまく動作しているかのようです。 – Dluks

答えて

0

答えは簡単であった:ChangeControllerクラス内であることが必要include Change::Resourcesライン、それ以外の場合はコントローラにアクセスできませんでした。

関連する問題