我的rails应用程序中有一个帖子表,包含标题和正文字段。
我在浏览器中创建了一些帖子,添加了标题和正文。
现在我将一个作者列添加到帖子表中:
> rails g migration AddAuthorToPosts author:string
修改表单以添加作者字段:
<%= f.label :author %>
<%= f.text_field :author %>
并将该属性添加到控制器中的strong_params:
def post_params
params.require(:post).permit(:title, :body, :author)
end
当我现在编辑现有帖子时,我发现作者字段确实显示在表单中,但第一次没有保存。当我重复编辑同一篇文章并再次更改作者字段时,它会被保存
控制器中的更新方法是问题所在:
@post = Post.find(params[:id])
if @post.update(post_params)
flash[:notice] = "Success!"
redirect_to @post
return
else
render 'edit'
end
我希望在第一次更新现有帖子时进行编辑。
我意识到我需要在控制器更新操作中执行其他操作而不是@ post.update(post_params),但不确定是什么。