如何使用 Twilio SMS params[:Body] 搜索 rails 数据库
how to use Twilio SMS params[:Body] to search a rails database
您好,我正在尝试搜索我的数据库,以使用 twilio 从短信的 body 中查找食谱。到目前为止,这是我在控制器中的代码
def process_sms
@recipe = Recipe.find_by(params[:title])
render 'process_sms.xml.erb', :content_type => 'text/xml'
end
我的路线:
root 'recipes#index'
devise_for :users
resources :recipes
post 'twilio/voice' => 'twilio#voice'
post 'twiliosms/send_sms' => 'twiliosms#send_sms'
match 'twiliosms/process_sms' => 'twiliosms#process_sms', via: :all
我希望能够从 SMS 中搜索菜谱标题并呈现一些 xml。当前的实现会一遍又一遍地发回相同的配方。我认为这与不在同一控制器操作中传递 twilio params[:Body]
并使用它来匹配 recipe(params[:title])
但不完全确定有关。任何帮助,将不胜感激。谢谢!
您可以考虑在控制器函数中使用 .where
(假设您的模型列名为 "title"):
def process_sms
@recipe = Recipe.where(title:params[:title])
render 'process_sms.xml.erb', :content_type => 'text/xml'
end
这里是 Twilio 开发人员布道者。
您提到了 params[:Body]
,这是 SMS 消息文本所在的参数,但是您使用 params[:title]
进行搜索。在来自 Twilio 的传入 webhook 的上下文中,params[:title]
将为零,所以我猜你返回的食谱没有标题。
我认为你应该使用:
def process_sms
@recipe = Recipe.find_by(title: params[:Body])
render 'process_sms.xml.erb', :content_type => 'text/xml'
end
如果有帮助请告诉我。
[编辑]
更新了对 find_by
的调用
您好,我正在尝试搜索我的数据库,以使用 twilio 从短信的 body 中查找食谱。到目前为止,这是我在控制器中的代码
def process_sms
@recipe = Recipe.find_by(params[:title])
render 'process_sms.xml.erb', :content_type => 'text/xml'
end
我的路线:
root 'recipes#index'
devise_for :users
resources :recipes
post 'twilio/voice' => 'twilio#voice'
post 'twiliosms/send_sms' => 'twiliosms#send_sms'
match 'twiliosms/process_sms' => 'twiliosms#process_sms', via: :all
我希望能够从 SMS 中搜索菜谱标题并呈现一些 xml。当前的实现会一遍又一遍地发回相同的配方。我认为这与不在同一控制器操作中传递 twilio params[:Body]
并使用它来匹配 recipe(params[:title])
但不完全确定有关。任何帮助,将不胜感激。谢谢!
您可以考虑在控制器函数中使用 .where
(假设您的模型列名为 "title"):
def process_sms
@recipe = Recipe.where(title:params[:title])
render 'process_sms.xml.erb', :content_type => 'text/xml'
end
这里是 Twilio 开发人员布道者。
您提到了 params[:Body]
,这是 SMS 消息文本所在的参数,但是您使用 params[:title]
进行搜索。在来自 Twilio 的传入 webhook 的上下文中,params[:title]
将为零,所以我猜你返回的食谱没有标题。
我认为你应该使用:
def process_sms
@recipe = Recipe.find_by(title: params[:Body])
render 'process_sms.xml.erb', :content_type => 'text/xml'
end
如果有帮助请告诉我。
[编辑]
更新了对 find_by