【发布时间】:2019-03-24 21:08:55
【问题描述】:
在显示帖子的 html.erb(称为 show.html.erb)中,我添加了一个 link_to 以编辑帖子。我只做了一行更改
不起作用
<%= link_to("edit", "/posts/:id/edit") %>
有效
<%= link_to("edit", "/posts/#{@post.id}/edit") %>
对于 routes.rb,我有
get "posts/:id/edit => "posts#edit"
在控制器中,
def edit
@post = Post.find_by(id: params[:id])
end
在edit.html.erb中,我有
<textarea><%= @post.content %></textarea>
<input type="submit" value="save">
帖子中的 NoMethodError#edit
显示第 6 行引发的 /home/progate/tweet_app/app/views/posts/edit.html.erb:
nil:NilClass 的未定义方法“内容”
由于我对 Rails 的了解有限,我知道因为在控制器中,我使用 find_by 定义 @post,我想链接 URL 可以使用符号 :id。
但好像不是这样的。
为什么带有 :id 的 link_to 不起作用?
【问题讨论】:
标签: ruby-on-rails