1
我测试了一个名为路线如何测试命名路线?
1) Failure:
test_settings_route(ProjectsControllerTest) [/test/functional/projects_controller_test.rb:15]:
The generated path <"/projects/1/edit"> did not match <"/projects/1/settings">
这里的测试时,遇到下列错误,那么我把我的路线文件
# projects_controller_test.rb
require 'test_helper'
class ProjectsControllerTest < ActionController::TestCase
def test_settings_route
assert_routing '/projects/1/settings', :controller => 'projects', :action => 'edit', :id => '1'
end
# routes.rb
map.settings '/projects/:id/settings', :controller => 'projects', :action => 'edit'
随着该条目在我的路线文件,我的应用程序的行为与预期 - 即当/ projects/1/settings被请求时渲染项目的编辑模板 - 但我不明白如何让我的测试绿色。
我也试着用同样的结果
should_route :get, "/projects/1/settings", :controller => 'projects', :action => 'edit', :id => '1'
根据RailsGuide on routing“当请求进来时,routes.rb文件从上到下被处理。请求将被分派到第一个匹配的路由。”因此,您可能希望在更一般的RESTful路由之前保留更具体的命名路由。 – Corey 2010-04-14 18:28:07