2016-12-21 12 views
3

Я создаю приложение rails, которое включает в себя разработку. Я пытаюсь добавить Twilio сообщений на мой сайт с Ngrok, я использовал этот учебник: https://www.twilio.com/blog/2016/04/receive-and-reply-to-sms-in-rails.htmlПеред обратным вызовом process_action: authenticate_user! не определено

я смог открыть Ngrok в консоли и получить веб-идентификатор они дают для моей ссылки. Я продолжаю получать эту ошибку, когда я подключаю url в свой браузер. Я должен попасть в свое местное приложение. Не уверен, что случилось.

То, что я добавил в мой контроллер обмена сообщениями сделал для 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 должно быть определено путем разработки.

+0

Какая ошибка вы имеете в виду? Есть ли трассировка стека? – philnash

+0

Ошибка «ArgumentError in MessagesController # reply» «Перед обратным вызовом process_action: authenticate_user!» Не определено « – DianaBG

+0

» и выделяет строку «skip_before_filter: authenticate_user !,: only =>« reply »« – DianaBG

ответ

5

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 

Позвольте мне знать, если это помогает вообще.