Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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 “在我的路线上遇到了一个奇怪的错误”;缺少所需的钥匙“;轨道4_Ruby_Ruby On Rails 4_Railstutorial.org - Fatal编程技术网

Ruby “在我的路线上遇到了一个奇怪的错误”;缺少所需的钥匙“;轨道4

Ruby “在我的路线上遇到了一个奇怪的错误”;缺少所需的钥匙“;轨道4,ruby,ruby-on-rails-4,railstutorial.org,Ruby,Ruby On Rails 4,Railstutorial.org,所以我在我的本地主机上得到了这个错误:3000。我正在制作一个gif日志应用程序,我正在尝试向my_feed_item.html.erb部分中显示的项目添加一个编辑功能。我已经发布了下面的错误和一些源文件的链接。我相信路线是可以的,但是“缺少必需的钥匙:[:id]”是我不理解的一个方面。我不知道为什么这不能像我的删除功能那样工作。其中一些代码基于Hartl的rails教程 app/views/shared/_feed_item.html.erb,其中第25行出现: 没有路由匹配{:control

所以我在我的本地主机上得到了这个错误:3000。我正在制作一个gif日志应用程序,我正在尝试向my_feed_item.html.erb部分中显示的项目添加一个编辑功能。我已经发布了下面的错误和一些源文件的链接。我相信路线是可以的,但是“缺少必需的钥匙:[:id]”是我不理解的一个方面。我不知道为什么这不能像我的删除功能那样工作。其中一些代码基于Hartl的rails教程

app/views/shared/_feed_item.html.erb,其中第25行出现:

没有路由匹配{:controller=>“micropost”,:action=>“edit”}缺少必需的键:[:id]

提取的源(在第25行(见下面的粗线)附近):


****

您需要为编辑路径提供一个参数,以便它知道要编辑的micropost的id

edit_micropost_path(feed_item)

你快到了。错误消息说

没有路由匹配{:controller=>“micropost”,:action=>“edit”}缺少必需的键:[:id]

控制器必须知道您试图访问的资源(micropost)。给出资源的id,你就会没事了

**<%= link_to "edit", edit_micropost_path(feed_item.id) %>**
****

使用
rake routes
输出查看计算出的路由。我猜你的路线可能需要多元化。edit_micropost_pathedit_micropost GET/micropost/:id/edit(:format)micropost#edit当我更改为复数形式时,我得到了一个新的错误、未定义的局部变量或方法“edit_micropost_path”,因此我认为这不正确。
**<%= link_to "edit", edit_micropost_path(feed_item.id) %>**