0

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
4

1 に答える 1

0

これを経由createで呼び出されるアクションにしようとしましたか?POST

class ReceiveTextController < ApplicationController
  def create
    @post = Post.create!(body: params[:Body], from: params[:From])
  end
end

そしてあなたの中でroutes.rb

post "receive_text/create"
于 2012-06-18T15:12:11.083 に答える