尝试编辑帖子时收到错误:
发布#edit controller:
def edit
@post = Post.find params[:id]
end
发布#update controller:
def update
@post = Post.find params[:post]
if @post.update_attributes params[:post]
redirect_to posts_path
else
render 'edit'
end
end
修改视图
h1 Edit Post
= form_for @post do |f|
p
= f.label :title
= f.text_field :title
p
br
p
= f.label :content
= f.text_area :content
p
br
p
= f.submit 'Update Post'
p
br
这是我在PostsController#update,Unknown Key:title 错误中得到 ArgumentError的时候。我仍然围绕着Rails 4中的强参数概念,所以它可能与此有关......任何想法?
答案 0 :(得分:2)
尝试以下内容我希望它能为您提供帮助。
def update
@post = Post.find(params[:id])
if @post.update(post_params)
redirect_to @post
else
render 'edit'
end
end
答案 1 :(得分:0)
我将帖子#update controller更新为
params[:id]
而不是
params[:post]
此修复程序带来了由
引起的 ForbiddenAttributesErrorif @post.update_attributes params[:post]
这是由于Rails 4引入的强参数概念......我通过替换
来解决这个问题params[:post]
具有强大的参数
post_params
来自私有方法post_params
private
def post_params
params.require(:post).permit(:title, :content)
end
最终解决了未知密钥错误:title