Несколько вещей не так с этим.
Первый - это то, на что указал Дэвид Грейсон .Вы не можете вызвать метод send.
Во-вторых, как вы определили это действие в вашем config/routes.rb
, оно не должно быть таким:
resources :messages do
member 'send'
end
Как это нене определяет действие вообще.На самом деле, я даже не уверен, что это делает.Это должно быть так (учитывая, что вы также не можете назвать это send
):
resources :messages do
member do
get 'deliver'
end
end
Для получения дополнительной информации см. Руководство по маршрутизации .
Третье, что вы делаете неправильно, заключается в том, что в своем тесте вам нужно ссылаться на действие для контроллера, а не использовать маршрут.Это потому, что вы пишете тест функционального контроллера, который тестирует контроллер.
Это не должно быть так:
get target_app_messages_path(message.target_app.id)
Скорее, это:
get :deliver, :id => message.target_app.id
Метод принимает действие в качестве первого аргумента, параметры в качестве второго аргумента и данные сеанса в качестве третьего аргумента.