所以我在我的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>
答案 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) %>**