2012-06-18 39 views
0

收到存儲文本我已經設置了請求的URL在我的Twilio帳戶有郵寄到:myurl.com/receivetext。它似乎成功發佈,因爲當我使用Heroku控制檯檢查數據庫時,我看到以下內容:導軌及Twilio:接收無當從Twilio

帖子ID:5,身體:無,來自:nil,created_at:「2012-06-14 17:28: 01" 的updated_at:‘2012-06-14 17點28分01秒’

爲什麼接受零的身體和從屬性?我無法弄清楚我做錯了什麼!創建和更新的位置正在成功存儲,但是我關心的兩個屬性仍然保存爲零。

下面是其從Twilio接收發布請求的接收文本控制器:

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

編輯:當我轉儲PARAMS收到以下: 「{\」 控制器\ 「=> \」 receive_text \ 「\ 」動作\「=> \ 」指數\「}」

我通過將下列成我ReceiveText控制器實現這一點。 @params = Post.create(體:params.inspect,從「傾銷PARAMS」)!然後打開了Heroku的控制檯找到與來自=「傾倒PARAMS」數據庫條目。

我模擬與以下命令捲曲-X POST myurl.com/receivetext路線-d「AccountSid = AC123 &從=%2B19252411234」

我再次檢查生產數據庫,發現捲曲一個Twilio請求curl請求在獲取FROM屬性時工作。它存儲以下內容:

params.inspect返回「{\」AccountSid \「=> \」AC123 \「,\」From \「=> \」+ 19252411234 \「,\」co ...「

我收到了評論,指出:「只要twilio打着相同的URL用同樣的方法(GET/POST),應當填寫參數數組以及」我不知道如何使這個評論可操作的任何幫助將不勝感激,我很新的軌道

這裏是我的數據庫遷移(我有兩個屬性都設置爲字符串我試圖將其設置爲文本和沒有任何工作。)!

class CreatePosts < ActiveRecord::Migration 
    def change 
    create_table :posts do |t| 
    t.string :body 
    t.string :from 

    t.timestamps 
    end 
    end 
end 

這裏是我的Post模型:

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 

回答

0

有無你試圖讓這個create動作叫做via POST

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

而在你routes.rb

post "receive_text/create" 
+0

我只是去嘗試,並沒有奏效。我剛剛意識到,Twilio請求甚至沒有被髮送到應用程序。我保存到數據庫的「nil」是我手動訪問應用程序鏈接「http://myapp.com/receivetext」的結果,因此觸發nil:From&:Body並存儲created_at&更新爲at我手動訪問了這個鏈接。 – Smooth

+0

我應該單獨離開GET並額外添加帖子嗎?我刪除它,並用路徑文件中的POST代替它。 – Smooth

+0

只是想通了!原來,我在我的twilio帳戶中創建的新應用程序中輸入POST URL,而不是在「測試您的應用程序」沙箱部分中粘貼uRL。 – Smooth