Имитация запроса XHR GET - PullRequest
       4

Имитация запроса XHR GET

8 голосов
/ 26 августа 2009

В моих тестах RSpec мне нужно смоделировать запрос AJAX GET к действию index, и я использую код, как описано в документации по Rails и книге RSpec:

xhr :get, :index

Это всегда терпит неудачу, поскольку тест пытается загрузить действие show (без каких-либо параметров), а не указанное действие index.

Действие контроллера:

def index      
  @contacts = Contact.all

  respond_to do |format|
    format.html 
    format.js   { 
      render :update do |page|
        page.replace_html :contact_search_results, :partial => 'contacts'
      end
    }
  end
end

Ошибка, вызванная запуском спецификации: (показывает используемое действие show):

ActionView::TemplateError in 'ContactsController as an administrator user when
showing the index of contacts' as an AJAX request should render results into the
contact_search_results element'

contact_url failed to generate from {:action=>"show", :controller=>"contacts", 
:id=>#<Contact id: nil, first_name: nil, ....>}

Кто-нибудь знает, как я могу симулировать AJAX-вызов действия индекса в тестах?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 05 октября 2009

На самом деле я думаю, что вы неправильно понимаете ошибку. Где-то по пути Rails пытается вызвать contact_url, а параметры неверны. Я подозреваю, что это действительно вызывает действие index, которое затем делает контакт частичным. Если я прав, частичные контакты - это местонахождение проблемы. Я бы порекомендовал просмотреть частичные контакты на наличие возможных ошибок. Если у вас все еще есть проблемы, пожалуйста, оставьте частичное тело своих контактов.

0 голосов
/ 09 сентября 2013

Вы пытаетесь создать URL для непостоянного объекта Contact. Вы можете видеть это в сообщении: :id=>#<Contact id: nil

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...