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
この行にエラーが表示されますか? 'petition = Petition.new(クライアント)' –
私はそうです。これは、Clientオブジェクトの作成がうまく動作しているかのようです。 – Dluks