【发布时间】:2014-08-10 17:16:11
【问题描述】:
我使用 Twilio API 构建了一个带有电话文本用户界面的志愿者跟踪应用程序。我不需要视图,所以我的控制器包含以下代码:
class TwilioController < ApplicationController
include TwilioHelper
def sms_receive
user = User.find_or_create_by(phone_number: params[:From])
text = Text.create(user_id: user.id, body: params[:Body].capitalize, date: DateTime.now)
activity_log = ActivityLog.new(user_id: user.id, phone_number: "xxx-xxx-#{user.last_four_digits}", text_id: text.id)
args = {user: user, text: text, activity_log: activity_log, options: params}
volunteer_manager = VolunteerHandler.new(args)
replies = volunteer_manager.process
replies.each {|reply| text_response(reply, args[:options])}
end
def text_response(reply, args)
account_sid = ENV['ACCOUNT_SID']
auth_token = ENV['AUTH_TOKEN']
client = Twilio::REST::Client.new account_sid, auth_token
client.account.messages.create(:body => reply, :to => args[:From], :from => args[:To])
render nothing: true and return
end
end
用户将发送一个多命令字符串(即“加入美国红十字会”)。在这种情况下,两个命令将执行“In”和“with American Red Cross”。这些命令返回一个字符串数组,例如 ['Thank you for志愿者','您希望美国红十字会与您保持联系以获取未来的志愿服务机会吗?']。这个数组就是局部变量replies所指向的。
如果我取消渲染 nothing:true 并返回代码,则会收到错误消息:ActionView::MissingTemplate Missing template twilio/sms_receive 我可以创建不必要的视图并解决我的问题,但这似乎不是最好的解决方案。
非常感谢任何和所有帮助。谢谢。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4