Rails 5.1: почтовый запрос не работает правильно

В моем приложении Rails 5.1 я использую devise-authy драгоценный камень, чтобы добавить 2fa к моему приложению. С помощью этой формы...

= enable_authy_form multipart: true do
    = text_field_tag :country_code, '', required: true, id: 'country_code', aria_required: 'true'
    = telephone_field :cellphone, '', required: true, autocomplete: 'off', id: 'authy-cellphone', class: 'string required', aria_required: 'true'
    = button 'button', I18n.t( 'enable_authy', { scope: 'devise' } ), nil, 'submit', true, 'flex-end'

... Я публикую следующее действие контроллера ( из самоцвета):

  def POST_enable_authy
    @authy_user = Authy::API.register_user(
      :email => resource.email,
      :cellphone => params[:cellphone],
      :country_code => params[:country_code]
    )

    if @authy_user.ok?
      resource.authy_id = @authy_user.id
      if resource.save
        set_flash_message(:notice, :enabled)
      else
        set_flash_message(:error, :not_enabled)
        redirect_to after_authy_enabled_path_for(resource) and return
      end

      redirect_to [resource_name, :verify_authy_installation]
    else
      set_flash_message(:error, :not_enabled)
      render :enable_authy
    end
  end

Но, как вы можете видеть из журналов, ничего не происходит:

Started POST "/2fa/enable" for 127.0.0.1 at 2017-06-24 21:19:02 +0200
Processing by Devise::DeviseAuthyController#POST_enable_authy as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"5P1aSzQvWATGEBLEYYwoD7dS/6sCSzpAk24rnh1DK9ZV6S70WWt10ijmoAo9MlxyGDAol+ewZYAszooiDeZKQQ==", "country"=>"United States", "country_code"=>"us", "cellphone"=>["546876578"], "subdomain"=>""}
Cookie#domain returns dot-less domain name now. Use Cookie#dot_domain if you need "." at the beginning.
  Rendering devise/devise_authy/enable_authy.html.haml within layouts/application
Completed 200 OK in 3632ms (Views: 2461.8ms | ActiveRecord: 1.5ms)

Он просто перенаправляет на шаблон, откуда был получен запрос. Я не понимаю, почему это происходит.


Даже после разветвления драгоценного камня, изменение контроллера для перенаправления на конкретный URL, Ничего не произошло.

1 ответ

Я не уверен, что это применимо, поскольку я испытал это с Руби / Синатрой. Мой пост, казалось, был прав, но он продолжал возвращать оригинальную форму. Проблема была с AJAX, который был по умолчанию. Поскольку AJAX намеревается обновить форму, он не будет перенаправлять иначе. Я указал data-ajax="false", чтобы разрешить это. Дайте мне знать, если это поможет. (Опубликовано комментарий как ответ.)

Другие вопросы по тегам