更新方法不会更新记录,而是创建一个新记录。
如何更改代码才能正常工作?
控制器位:
def edit
@post = Post.find(params[:id])
end
def update
if @post.update(post_params)
redirect_to @post
else
render 'edit'
end
end
编辑视图:
= form_for :post, url: posts_path do |f|
%p
= f.label :title
= f.text_field :title
%p
= f.label :content
= f.text_area :content
%p
= f.submit
答案 0 :(得分:0)
更改表单标记:
= form_for @post do |f|
它没有使用您在控制器中设置的变量,因此它不知道它不是新对象。
只要您在路线文件中定义了资源,您也不需要指定网址。