开发者社区> 问答> 正文

如何允许具有强参数的数组

这是来自Rails 3应用程序的创建操作

def create @question = Question.new(params[:question]) respond_to do |format| if @question.save format.html { redirect_to @question, notice: 'Question was successfully created.' } format.json { render json: @question, status: :created, location: @question } else format.html { render action: "new" } format.json { render json: @question.errors, status: :unprocessable_entity } end end end 这是来自Rails 4应用程序的创建操作

def create @question = Question.new(question_params)

   respond_to do |format|
  if @question.save
    format.html { redirect_to @question, notice: 'Question was successfully created.' }
    format.json { render json: @question, status: :created, location: @question }
  else
    format.html { render action: "new" }
    format.json { render json: @question.errors, status: :unprocessable_entity }
  end
end
end

这是question_params方法

private def question_params params.require(:question).permit(:question_details, :question_content, :user_id, :accepted_answer_id, :province_id, :city, :category_ids) end

展开
收起
保持可爱mmm 2020-01-16 15:10:11 331 0
1 条回答
写回答
取消 提交回答
  • 如果要允许散列数组(或an array of objects从JSON的角度来看)

    params.permit(:foo, array: [:key1, :key2]) 这里要注意2点:

    array应该是方法的最后一个参数permit。 您应该在数组中指定哈希的键,否则会得到一个error Unpermitted parameter: array,在这种情况下很难调试。 问题来源于stack overflow

    2020-01-16 15:23:12
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载