У меня есть поле массива в моей модели, и я пытаюсь его обновить.
Мой метод сильных параметров ниже
def post_params
params["post"]["categories"] = params["post"]["categories"].split(",")
params.require(:post).permit(:name, :email, :categories)
end
Мое действие в моем контроллере выглядит следующим образом
def update
post = Post.find(params[:id]
if post and post.update_attributes(post_params)
redirect_to root_url
else
redirect_to posts_url
end
end
Однако, всякий раз, когда я отправляю сообщение об обновлении, в моем журнале разработки я вижу
Unpermitted parameters: categories
Прошедшие параметры:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"auth token", "id"=>"10",
"post"=>{"name"=>"Toni Mitchell", "email"=>"[email protected]", "categories"=>",2"}}
Я хочу думать, что это имеет какое-то отношение к тому факту, что атрибут categories
является массивом, поскольку все остальное выглядит хорошо. Опять же, я мог ошибаться. Итак, что случилось с моим кодом и почему я не позволяю мне сохранять поле категорий, когда это явно разрешено? Спасибо.