在我的路线上发现一个奇怪的错误,"错过了所需的钥匙"铁轨4

时间:2014-04-04 01:33:16

标签: ruby ruby-on-rails-4 railstutorial.org

所以我在我的localhost:3000上收到此错误。我正在制作一个gif发布博客应用程序,我正在尝试为我的_feed_item.html.erb部分中显示的项目添加编辑功能。我已经发布了下面的错误和一个gist中的一些源文件的链接。我相信路线还可以,但是“缺少必需的钥匙:[:id]”这件事是我不明白的一个方面。不知道为什么这不像我的删除功能那样有效。其中一些代码基于Hartl的rails教程。

app / views / shared / _feed_item.html.erb第25行引出:

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

提取的来源(第25行(见下面的粗线)):

</span><br />

<% if current_user?(feed_item.user) %>
    **<%= link_to "edit", edit_micropost_path %>**
    <%= link_to "delete", feed_item, method: :delete, 
                data: { confirm: "Are you sure? "}, title: feed_item.content %>
<% end %>
 </li>

Link to Gist

2 个答案:

答案 0 :(得分:0)

您需要为编辑路径指定一个参数,以便它知道要编辑的微博的ID。

edit_micropost_path(feed_item)

答案 1 :(得分:0)

你快到了。错误消息显示,

No route matches {:controller=>"microposts", :action=>"edit"} missing required keys: [:id]

控制器必须知道您尝试访问的资源(微博)。给出资源的id,你就会好起来的。

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