Rails 4, Ошибка аргумента Неизвестный ключ, Обновление контроллера
Я получаю сообщение об ошибке при попытке изменить сообщение:
контроллер сообщений
def edit
@post = Post.find params[:id]
end
посты # обновления контроллера:
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
Это когда я получаю ArgumentError в сообщении PostsController#, Unknown Key: ошибка заголовка. Я все еще обдумываю концепцию сильных параметров в Rails 4, так что это может быть как-то связано с этим... есть идеи?
2 ответа
Решение
Попробуйте следующее, я надеюсь, это поможет вам.
def update
@post = Post.find(params[:id])
if @post.update(post_params)
redirect_to @post
else
render 'edit'
end
end
Я обновил контроллер сообщений # до
params[:id]
скорее, чем
params[:post]
это исправление принесло мне ForbiddenAttributesError, вызванную
if @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