Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 轨道布线不起作用_Ruby On Rails_Ruby_Routes_Ruby On Rails 2 - Fatal编程技术网

Ruby on rails 轨道布线不起作用

Ruby on rails 轨道布线不起作用,ruby-on-rails,ruby,routes,ruby-on-rails-2,Ruby On Rails,Ruby,Routes,Ruby On Rails 2,我在my 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) pa

我在my 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创建

请把路线改成

map.connect '/books/v2/:id', :controller => 'books', :action => 'show_v2'
我希望它能帮助你

ActionController::UnknownAction(没有操作响应v2。操作: 一些方法1,一些方法2,一些方法3,一些方法4, 一些方法5、显示方法2、一些方法6和一些方法7):

为什么在日志中我看到的是“v2”而不是“show_v2”

按照默认路线

map.connect ':controller/:action/:id'
它期望
v2
作为
action
但您在路由中将
show_v2
定义为
action
。将
路线
更改为以下应该可以

map.connect '/books/show_v2/:id', :controller => 'books', :action => 'show_v2'

请注意,您使用的是哪个版本的rails?其背后的理论是什么?很抱歉,我没有显示理论和文档。我已经更新了我的答案。在该文档中,您可以找到详细说明@谢谢你的评论。我会小心地写下答案。谢谢你的帮助,但没有工作。它与rails约定相冲突,并且正在调用controller=>“books”action=>“v2”。这很有意义。还有什么方法可以让我的url保持为/books/v2/:id,方法名保持为show_v2?@riship89等等。你能用完整的
路线更新你的问题吗?