rails 路由不起作用
rails routing does not work
我在 routes.rb
中明确定义了以下路线
map.book_preview_v2 '/books/v2/:id', :controller => 'books', :action => 'show_v2'
但是,在日志中,我看到以下消息:
2015-09-25 16:49:04 INFO (session: f561ebeab121cd1c8af38e0482f176b8)
method /books/v2/519869.json (user: xxx:669052) params:
{"controller"=>"books", "action"=>"v2", "id"=>"519869",
"format"=>"json"}
ActionController::UnknownAction (No action responded
to v2. Actions: some_method_1, some_method_2,
some_method_3, some_method_4, some_method_5, **show_v2**,
some_method_6, and some_method_7):
我是否遗漏了一些约定优于配置的东西?为什么在日志中我看到操作是 "v2" 而不是 "show_v2"?
更新
这是为 rails v2.3.8
创建 routes 的方法
请修改路线为。
map.connect '/books/v2/:id', :controller => 'books', :action => 'show_v2'
希望对你有所帮助
ActionController::UnknownAction (No action responded to v2. Actions:
some_method_1, some_method_2, some_method_3, some_method_4,
some_method_5, show_v2, some_method_6, and some_method_7):
Why in the logs I see action as "v2" instead of "show_v2"?
根据Rails 2默认路由
map.connect ':controller/:action/:id'
它期望 v2
为 action
但您在路由中将 show_v2
定义为 action
。将 route
更改为以下应该有效
map.connect '/books/show_v2/:id', :controller => 'books', :action => 'show_v2'
我在 routes.rb
中明确定义了以下路线map.book_preview_v2 '/books/v2/:id', :controller => 'books', :action => 'show_v2'
但是,在日志中,我看到以下消息:
2015-09-25 16:49:04 INFO (session: f561ebeab121cd1c8af38e0482f176b8)
method /books/v2/519869.json (user: xxx:669052) params:
{"controller"=>"books", "action"=>"v2", "id"=>"519869",
"format"=>"json"}
ActionController::UnknownAction (No action responded
to v2. Actions: some_method_1, some_method_2,
some_method_3, some_method_4, some_method_5, **show_v2**,
some_method_6, and some_method_7):
我是否遗漏了一些约定优于配置的东西?为什么在日志中我看到操作是 "v2" 而不是 "show_v2"?
更新
这是为 rails v2.3.8
创建 routes 的方法请修改路线为。
map.connect '/books/v2/:id', :controller => 'books', :action => 'show_v2'
希望对你有所帮助
ActionController::UnknownAction (No action responded to v2. Actions: some_method_1, some_method_2, some_method_3, some_method_4, some_method_5, show_v2, some_method_6, and some_method_7):
Why in the logs I see action as "v2" instead of "show_v2"?
根据Rails 2默认路由
map.connect ':controller/:action/:id'
它期望 v2
为 action
但您在路由中将 show_v2
定义为 action
。将 route
更改为以下应该有效
map.connect '/books/show_v2/:id', :controller => 'books', :action => 'show_v2'