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_Routes_Scaffold - Fatal编程技术网

Ruby on rails 轨道路由错误

Ruby on rails 轨道路由错误,ruby-on-rails,routes,scaffold,Ruby On Rails,Routes,Scaffold,奇怪的错误。我是rails的新手。从新安装的rails中,我连接到oracle db,然后运行: jruby script/generate scaffold job oid:integer userid:integer name:string status:integer 在不做任何其他操作的情况下,我启动了服务器并输入了一个新作业,然后出现以下错误: Routing Error job_url failed to generate from {:controller=>"jobs"

奇怪的错误。我是rails的新手。从新安装的rails中,我连接到oracle db,然后运行:

jruby script/generate scaffold job oid:integer userid:integer name:string status:integer
在不做任何其他操作的情况下,我启动了服务器并输入了一个新作业,然后出现以下错误:

Routing Error

job_url failed to generate from {:controller=>"jobs", :action=>"show", :id=>#<Job id: #<BigDecimal:d55a0f,'10000.0',1(8)>, oid: #<BigDecimal:10bb83e,'1324.0',4(8)>, userid: #<BigDecimal:6d234c,'1234.0',4(8)>, name: "asdfadsf", status: #<BigDecimal:1286c71,'1234.0',4(8)>, created_at: "2009-12-15 00:49:37", updated_at: "2009-12-15 00:49:37">}, expected: {:controller=>"jobs", :action=>"show"}, diff: {:id=>#<Job id: #<BigDecimal:853e51,'10000.0',1(8)>, oid: #<BigDecimal:1be4050,'1324.0',4(8)>, userid: #<BigDecimal:adb165,'1234.0',4(8)>, name: "asdfadsf", status: #<BigDecimal:15978e7,'1234.0',4(8)>, created_at: "2009-12-15 00:49:37", updated_at: "2009-12-15 00:49:37">}
路由错误
作业url未能从{:控制器=>“作业”,:操作=>“显示”,:id=>#}生成,应为:{:控制器=>“作业”,:操作=>“显示”},差异:{:id=>#}
即使抛出错误,仍会创建记录。当我试图查看记录时,我得到了以下堆栈,这实际上是相同的错误。

ActionController::RoutingError in Jobs#show

Showing app/views/jobs/show.html.erb where line #22 raised:

edit_job_url failed to generate from {:controller=>"jobs", :action=>"edit", :id=>#<Job id: #<BigDecimal:18caa36,'10000.0',1(8)>, oid: #<BigDecimal:1fac733,'1324.0',4(8)>, userid: #<BigDecimal:12c1472,'1234.0',4(8)>, name: "asdfadsf", status: #<BigDecimal:f25f89,'1234.0',4(8)>, created_at: "2009-12-15 00:49:37", updated_at: "2009-12-15 00:49:37">}, expected: {:controller=>"jobs", :action=>"edit"}, diff: {:id=>#<Job id: #<BigDecimal:1b9cdfc,'10000.0',1(8)>, oid: #<BigDecimal:1829097,'1324.0',4(8)>, userid: #<BigDecimal:e2d663,'1234.0',4(8)>, name: "asdfadsf", status: #<BigDecimal:691ccf,'1234.0',4(8)>, created_at: "2009-12-15 00:49:37", updated_at: "2009-12-15 00:49:37">}
Extracted source (around line #22):

19: </p>
20: 
21: 
22: <%= link_to 'Edit', edit_job_path(@job) %> |
23: <%= link_to 'Back', jobs_path %>
RAILS_ROOT: /opt/code/import

Application Trace | Framework Trace | Full Trace
/opt/jruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/routing/route_set.rb:426:in `raise_named_route_error'
/opt/jruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/routing/route_set.rb:387:in `generate'
/opt/jruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/url_rewriter.rb:205:in `rewrite_path'
/opt/jruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/url_rewriter.rb:184:in `rewrite_url'
/opt/jruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/url_rewriter.rb:162:in `rewrite'
/opt/jruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:634:in `url_for'
/opt/jruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/helpers/url_helper.rb:85:in `url_for'
(eval):16:in `edit_job_path'
/opt/code/import/app/views/jobs/show.html.erb:22:in `_run_erb_app47views47jobs47show46html46erb'
/opt/code/import/app/controllers/jobs_controller.rb:18:in `show'
Request

Parameters:

{"id"=>"10000"}
Show session dump

Response

Headers:

{"Cache-Control"=>"no-cache",
 "Content-Type"=>"text/html"} 
ActionController::作业中的路由错误#显示
显示第22行出现的app/views/jobs/show.html.erb:
编辑作业\u url未能从{:控制器=>“作业”,:操作=>“编辑”,:id=>#}生成,应为:{:控制器=>“作业”,:操作=>“编辑”},差异:{:id=>#}
提取的源(第22行附近):
19:

20: 21: 22: | 23: RAILS\u ROOT:/opt/code/import 应用程序跟踪|框架跟踪|完整跟踪 /opt/jruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action\u controller/routing/route\u set.rb:426:in'raise\u named\u route\u error' /opt/jruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action\u controller/routing/route\u set.rb:387:in“generate” /opt/jruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action\u controller/url\u rewriter.rb:205:在“重写路径”中 /opt/jruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action\u controller/url\u rewriter.rb:184:in“rewrite\u url” /opt/jruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action\u controller/url\u rewriter.rb:162:in“rewrite” /opt/jruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action\u controller/base.rb:634:in'url\u for' /opt/jruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action\u view/helpers/url\u helper.rb:85:in'url\u for' (评估):16:在“编辑作业路径”中 /opt/code/import/app/views/jobs/show.html.erb:22:in`_run_erb_app47views47jobs47show46html46erb' /opt/code/import/app/controllers/jobs\u controller.rb:18:in'show' 要求 参数: {“id”=>“10000”} 显示会话转储 回应 标题: {“缓存控制”=>“无缓存”, “内容类型”=>“文本/html”}

当我删除“编辑作业路径”方法时,错误消失,因此我知道它只是在渲染路线时出现问题,但我不确定原因,因为它似乎有正确的信息。我的意思是这是一个样板脚手架所以。。。。提前感谢您的帮助

确保您的配置/routes.rb中有这一行:

map.resources :jobs

还可以运行“rake routes”查看哪些路由可用。*path和*url方法由您在routes.rb文件中定义的命名路由和资源生成。更多信息。

确保您的配置/routes.rb中有这一行:

map.resources :jobs

还可以运行“rake routes”查看哪些路由可用。*path和*url方法由您在routes.rb文件中定义的命名路由和资源生成。更多信息。

这是因为您的ID字段是一个
BigDecimal
,其中应该是一个
整数。它将一个数字(如“1234.54”)分为两部分进行解释,类似于
{:action=>“1234”,:format=>“54”}

这是因为您的ID字段是一个
大十进制
,其中它应该是一个
整数。它将诸如“1234.54”这样的数字解释为两部分,类似于
{:action=>“1234”,:format=>“54”}

宾果游戏。谢谢你,瑞安!在我发布后,我意识到那个大十进制有什么问题,但不确定到底是什么。你搞定了。这是因为我在使用JRuby,我不需要这样做,所以我要切换回非Java Ruby VM.Bingo。谢谢你,瑞安!在我发布后,我意识到那个大十进制有什么问题,但不确定到底是什么。你搞定了。这是因为我正在使用JRuby,我不需要这样做,所以我将切换回非JavaRuby虚拟机。