тест не срабатывает, потому что он говорит, что действия не существуют, когда это ясно. Это потому, что это вложенный маршрут? Есть предположения?Контроллер контроллера Rspec не найден
Update:
я переехал resources :orders
вне вложенного маршрута и испытаний прошли. Так что это связано с тем, что он вложен.
OrderController
def index
if current_printer
@orders = Order.all
@printer = Printer.find(params[:printer_id])
end
if current_user
@orders = Order.where(user_id: params[:user_id])
end
end
OrdersController Spec
require 'rails_helper'
RSpec.describe OrdersController, :type => :controller do
describe "unauthorized user" do
before :each do
# This simulates an anonymous user
login_with_user nil
binding.pry
end
it "should be redirected back to new user session" do
get :index
expect(response).to redirect_to(new_user_session_path)
end
end
end
Маршруты
resources :users, only: [:index, :show] do
resources :orders
end
Ошибка
Failures:
1) OrdersController unauthorized user should be redirected back to new user session
Failure/Error: get :index
ActionController::UrlGenerationError:
No route matches {:action=>"index", :controller=>"orders"}
ли вы назвать это 'OrderController' или' OrdersController'? По соглашению он должен быть множественным. – SteveTurczyn
Нет, это как-то связано с тем, что он вложен – Seal