微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – 在process_action回调之前:authenticate_user!尚未定义

我正在创建一个包含设计的rails应用程序.
我正在尝试使用Ngrok将Twilio消息传递到我的网站,我使用了本教程:
https://www.twilio.com/blog/2016/04/receive-and-reply-to-sms-in-rails.html

我能够在控制台中打开Ngrok并获取他们为我的网址提供的网络ID.
当我将网址插入我的浏览器时,我不断收到此错误.我应该到我自己的rails本地应用程序.不确定什么是错的.

我在为ngrok制作的消息传递控制器中添加内容

class MessagesController < ApplicationController
  skip_before_filter :verify_authenticity_token 
  skip_before_filter :authenticate_user!,:only => "reply"

def reply
   message_body = params["Body"]
   from_number = params["From"]
   boot_twilio
   sms = @client.messages.create(
     from: Rails.application.secrets.twilio_number,to: from_number,body: "Hello there,thanks for texting me. Your number is #{from_number}."
  )
  #twilio expects a HTTP response to this request
end


private
 def boot_twilio
   account_sid = Rails.application.secrets.twilio_sid
   auth_token = Rails.application.secrets.twilio_token
   @client = Twilio::REST::Client.new account_sid,auth_token
 end
end

真的不确定是什么问题.
当它没有连接到’def reply’时,authenticate_user应该由devise定义.

解决方法

Twilio开发者传道者在这里.

看起来这是Rails 5似乎引入的一个问题.如果过滤器尚未在控制器中使用时定义,则会引发错误. This was discovered in the Clearance project too.

Their fix是将raise:false选项传递给skip_before_filter:

class MessagesController < ApplicationController
  skip_before_filter :verify_authenticity_token 
  skip_before_filter :authenticate_user!,:only => "reply",:raise => false

end

如果这有帮助,请告诉我.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐