Rails 4参数数量错误(1 for 2)更新错误



我确信这是我没有看到的小东西,但是当我试图通过表单更新信息时,我得到了错误的参数数量(1 for 2),在rails 4中。

这是我的控制器动作:

def update
    @lion = Lion.find(params[:id])
    @lion = Lion.update(lion_params)
    redirect_to lion(@lion)
end

这里是该控制器的私有方法中的lion_params

def lion_params
     params.require(:lion).permit(:name, :about, :weight, :health, :health_notes, :photo_url, :trainer_id)
end

所有的信息都在表单中,所以我不太确定这个错误是从哪里来的。

您想在@lion上使用update_attributes,而不是' update:

# The bang `!` is used to raise in case of validation errors
@lion.update_attributes!(lion_params)

查看这篇文章,它解释了update, update_all, update_attribute, update_attributes之间的所有差异

还要确保您的最后一行是redirect_to lion_url(@lion) (lion()不存在),使用_url方法很重要,因为它遵循HTTP规范

最新更新