Что пропускает обработчик шаблона в имени шаблона устарел. имею в виду?

Я пытался выяснить, что это означает сообщение об ошибке, но не может понять это.

Вот полное сообщение

DEPRECATION WARNING: Passing a template handler in the template name
is deprecated. You can simply remove the handler name or pass render
:handlers => [:jbuilder] instead. (called from realtime at
/Users/Arel/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/benchmark.rb:295)

и вот код:

it "is logged in" do
    post "/api/v1/login", user_login: {email: '[email protected]', password: '12345678' }
    response.status.should be(201)
  end

Что такое template handler, и почему он думает, что я передаю его в template name? Какой шаблон?

EDIT:

Sessions_controller. Контроллер вызывается по пути входа.

class Api::V1::SessionsController < Devise::SessionsController
    before_filter :authenticate_user!, except: [:create, :destroy]
    before_filter :ensure_params_exist
    skip_before_filter :verify_authenticity_token

  def create
    resource = User.find_for_database_authentication(email: params[:user_login][:email])
    return invalid_login_attempt unless resource

    if resource.valid_password?(params[:user_login][:password])
        sign_in("user", resource)
        resource.ensure_authentication_token!
        render 'api/v1/sessions/new.json.jbuilder', status: 201
        return
    end
    invalid_login_attempt
  end

  def destroy
        current_user.reset_authentication_token
        render json: {success: true}
  end

  protected

  def ensure_params_exist
    return unless params[:user_login].blank?
    render json: {success: false, message: "missing user_login parameter"}, status: 422
  end

  def invalid_login_attempt
    render 'api/v1/sessions/invalid.json.jbuilder', status: 401
  end
end

Ответы

Ответ 1

При рендеринге из действия вашего контроллера вам больше не нужно передавать формат файла или обработчик как часть имени файла. Вместо этого вы сделаете следующее:

render 'api/v1/sessions/new', :formats => [:json], :handlers => [:jbuilder], status: 201

Это обеспечивает удобство действий, которые отображаются в нескольких форматах. Например, вместо предоставления отдельного шаблона для каждого из форматов вы можете просто передать массив принятых форматов в render:

render 'api/v1/sessions/foo', :formats => [:html, :js, :xml]
#=> handles html, js, and xml requests
#=> renders to foo.html, foo.js, and foo.xml, respectively

Передача массива в :builders позволяет указать конструкторы шаблонов, которые будут использоваться при рендеринге:

render 'api/v1/sessions/foo', :formats => [:json], :handlers => [:jbuilder]
#=> renders to foo.json.jbuilder