Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.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 在Rails 3.1中,当尝试从不同的模型访问模型对象时,为什么会出现错误?_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 在Rails 3.1中,当尝试从不同的模型访问模型对象时,为什么会出现错误?

Ruby on rails 在Rails 3.1中,当尝试从不同的模型访问模型对象时,为什么会出现错误?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我在我的users/show.html.erb视图中,我正在这样做: 当前用户id%> @user.id%> 250,:类=>'xxlarge'> “btn”%> 然而,我一直得到的错误是: NilClass:Class的未定义方法“model_name” 有什么想法吗 编辑1 当我将@feedback=feedback.new添加到我的控制器的show操作时,我得到如下路由错误: ActionView::Template::Error(没有路由匹配{:controller=>“feedb

我在我的
users/show.html.erb
视图中,我正在这样做:


当前用户id%>
@user.id%>
250,:类=>'xxlarge'> “btn”%>
然而,我一直得到的错误是:

NilClass:Class的未定义方法“model_name” 有什么想法吗

编辑1

当我将
@feedback=feedback.new
添加到我的控制器的show操作时,我得到如下路由错误:

ActionView::Template::Error(没有路由匹配{:controller=>“feedbacks”,:format=>nil}):
7:分享你的想法
8:             
9:             
10:                 
11:                     
12:当前用户id%>
13: app/views/users/show.html.erb:10:in`_app\u views\u users\u show\u html\u erb\u 3843741595115817595\u 2495618900' app/controllers/vanities_controller.rb:14:in'show'
编辑2

我尝试添加
:url
选项,如下所示:
新建反馈路径(@feedback))do | f |%>
,但出现以下错误:

ActionView::Template::Error(没有路由匹配{:action=>“new”,:controller=>“feedbacks”}):
7:分享你的想法
8:             
9:             
10:new|u feedback|u path(@feedback))do | f |%>
11:                     
12:当前用户id%>
13: app/views/users/show.html.erb:10:in`_app\u views\u users\u show\u html\u erb\u 3843741595115817595\u 216698680' app/controllers/vanities_controller.rb:13:in'show'
编辑3

rake路由的相关输出

feedbacks GET/:username/feedbacks(:format){:action=>“index”,:controller=>“feedbacks”}
POST/:用户名/反馈(:格式){:操作=>“创建”,:控制器=>“反馈”}
new_feedback GET/:username/feedbacks/new(:format){:action=>“new”,:controller=>“feedbacks”}
编辑\反馈获取/:用户名/反馈/:id/编辑(:格式){:操作=>“编辑”,:控制器=>“反馈”}
反馈获取/:用户名/反馈/:id(:格式){:操作=>“显示”,:控制器=>“反馈”}
PUT/:username/feedbacks/:id(:format){:action=>“update”,:controller=>“feedbacks”}
DELETE/:username/feedbacks/:id(:format){:action=>“destroy”,:controller=>“feedbacks”}
编辑4

路由与
反馈相对应的文件
资源:

scope”:用户名“do”
资源:反馈
终止
编辑5

这就是我在的
表单中使用
根路径
后的
Post
操作的样子:

于2011-10-17 04:19:27-0500开始发布127.0.0.1
WelcomeController#索引为HTML进行处理
参数:{“utf8”=>“✓", "真实性令牌“=>”0bbhasidfasdf72k2323424=“,”反馈“=>{”海报id“=>”4”,“接收者id“=>”5”,“内容“=>”Hrmm…这不起作用。真烦人。“}”,“提交”=>“发送”}
用户加载(0.2ms)从“用户”中选择“用户”。*其中“用户”。“id”=?限制1[[“id”,4]]
布局/应用程序中呈现的欢迎/index.html.erb(103.5ms)
在118毫秒内完成200 OK(视图:115.2毫秒|活动记录:1.1毫秒)

此问题与我的路线有关

我最终还是找到了答案,但我必须做大量的挖掘工作才能到达那里……这就引出了另一个问题:


那里的答案为我解决了这个问题。

您是否尝试过将
:url
选项放入
form\u for
block?尝试过,并将结果放入原始问题中。您是否可以尝试:url选项和create\u feedback\u path;如果这不起作用,你能用“rake routes”检查你的路线吗?@blackbird07这是我在
create\u feedback\u path
中得到的错误:
未定义的方法“create\u feedback\u path”for#
。将我的rake路由输出添加到问题中。您可能已经为反馈资源准备好了路由。