Twilio アカウントにリクエスト URL を設定して、myurl.com/receivetext に POST するようにしました。Heroku コンソールを使用してデータベースを確認すると、次のように表示されるため、正常に投稿されているようです。
投稿 ID: 5、本文: なし、送信元: なし、created_at: "2012-06-14 17:28:01"、updated_at: "2012-06-14 17:28:01"
体と属性から nil を受け取っているのはなぜですか? 私は何が間違っているのか理解できません!作成および更新された at は正常に保存されていますが、気になる 2 つの属性は引き続き nil として保存されます。
Twilio から Post リクエストを受信する Receive Text コントローラーは次のとおりです。
class ReceiveTextController < ApplicationController
def index
@post=Post.create!(body: params[:Body], from: params[:From])
end
end
編集: パラメータをダンプすると、次のメッセージが表示されます: "{\"controller\"=>\"receive_text\", \"action\"=>\"index\"}"
これを実現するには、ReceiveText コントローラーに以下を挿入します。@params = Post.create!(body: params.inspect, from: "Dumping Params") 次に、Heroku コンソールを開いて、from = "Dumping Params" のデータベース エントリを見つけます。
次のコマンド curl -X POST myurl.com/receivetext route -d 'AccountSid=AC123&From=%2B19252411234' を使用して、curl で Twilio リクエストをシミュレートしました。
本番データベースを再度確認したところ、FROM 属性を取得するときに curl リクエストが機能していることに気付きました。以下を格納しました。
params.inspect は "{\"AccountSid\"=>\"AC123\", \"From\"=>\"+19252411234\", \"co..." を返しました
「twilio が同じメソッド (GET/POST) で同じ URL にアクセスしている限り、params 配列も満たされているはずです」というコメントを受け取りました。このコメントを実行可能にする方法がわかりません。私はレールに非常に慣れていません。
これが私のデータベースの移行です(両方の属性を文字列に設定しています。テキストに設定しようとしましたが、どちらも機能しませんでした):
class CreatePosts < ActiveRecord::Migration
def change
create_table :posts do |t|
t.string :body
t.string :from
t.timestamps
end
end
end
ここに私の投稿モデルがあります:
class Post < ActiveRecord::Base
attr_accessible :body, :from
end
ルート (すべてが正常にルーティングされているように見えます):
MovieApp::Application.routes.draw do
get "receive_text/index"
get "pages/home"
get "send_text/send_text_message"
root to: 'pages#home'
match '/receivetext', to: 'receive_text#index'
match '/pages/home', to: 'pages#home'
match '/sendtext', to: 'send_text#send_text_message'
end
ここに私のgemfileがあります(役立つ場合)
source 'https://rubygems.org'
gem 'rails', '3.2.3'
gem 'badfruit'
gem 'twilio-ruby'
gem 'logger'
gem 'jquery-rails'
group :production do
gem 'pg'
end
group :development, :test do
gem 'sqlite3'
end
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end