TwilioアカウントにリクエストURLを設定して、POSTをmyurl.com/receivetextに設定しました。Herokuコンソールを使用してデータベースを確認すると、次のように表示されるため、正常に投稿されているようです。
投稿ID:5、本文:nil、差出人:nil、created_at: "2012-06-14 17:28:01"、updated_at: "2012-06-14 17:28:01"
なぜそれは体と属性からnilを受け取るのですか?何が間違っているのかわからない!で作成および更新されたは正常に保存されていますが、私が気にかけている2つの属性は引き続きnilとして保存されます。
TwilioからPostリクエストを受信しているReceiveTextコントローラーは次のとおりです。
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="DumpingParams"のデータベースエントリを検索します。
次のコマンドを使用して、curlを使用してTwilioリクエストをシミュレートしましたcurl -X POST myurl.com/receivetext route -d'AccountSid = AC123&From =%2B19252411234'
本番データベースを再度確認したところ、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