Я пытаюсь написать тестовые случаи для вложенного ресурса и вижу следующую ошибку:
Error:
test_should_get_single_budget_link(BudgetlinkControllerTest):
ActionController::RoutingError: No route matches {:budget_id=>980190962, :action=>"show", :controller=>"budgetlink"}
test/functional/budgetlink_controller_test.rb:5:in `test_should_get_single_budget_link'
Мой route.rb выглядит так:
Simplebudget::Application.routes.draw do
root :to => "home#index"
resources :budgets do
resources :transactions
resources :budgets, :controller => :budgetlink
end
resources :classifications
resources :periodicities
end
Мой тест выглядитнапример:
test "should get single budget link" do
get :show, 'budget_id' => budgets(:one).id
assert_response :success
assert_equal assigns(:budgetlink).primary, "Budget1"
assert_equal assigns(:budgetlink).secondary, "Budget2"
end
Я полагаю, это тот факт, что я настроил маршруты для использования имени ресурса "бюджеты" вместо бюджетных ссылок, и Rails не может в моем текущем тесте распознать бюджетный маршрут,Как я могу настроить свой тест для распознавания моего переназначенного маршрута?
Не уверен, если это необходимо, но решил, что это не повредит.Вот код контроллера:
class BudgetlinkController < ApplicationController
skip_before_filter :verify_authenticity_token
def show
@budgetlink = Budgetlink.find(params[:primary], params[:secondary])
respond_to do |format|
format.html #index.html.erb
format.json { render :json => @budgetlink}
end
end
end