【问题标题】:rails 4 strong params error: param not foundrails 4 strong params错误:找不到参数
【发布时间】:2013-12-03 16:21:48
【问题描述】:

我试图在我的模型的更新方法中完成一些功能。但是,我收到以下错误,这似乎是由于 rails 4 中引入的强参数约定。

 Upload.rb (Model)
 Update method 

  def update
mode = nil
market = nil
case @upload.task_id
when 1
    mode = "channel"
    market = nil
when 2
    mode = "national"
    market = "national"
when 3
    mode = "regional"
    market = "t"
when 4
    mode = "regional"
    market = "c"
when 5
    mode = "regional"
    market = "e"
when 6
    mode = "regional"
    market = "v"
else
    puts"Error!! Received invalid task.id to parse"
end
options = Hash[:file_path =>Upload.find(params[:id]).f_path , :mode =>"#{mode}", :market=>"#{market}"]
puts "options= #{options.inspect}"
@cp = CsvParser.new(options)

if @upload.update(upload_params)
       redirect_to @upload, notice: 'Upload was successfully updated.'
    else
       render action: 'edit'
    end
  end


  # Only allow a trusted parameter "white list" through.
    def upload_params
    params.require(:upload).permit(:sourcedata, :task_id, :status, :file_path, :options, :mode, :market)
    end

错误

    ActionController::ParameterMissing - param not found: upload:

    actionpack (4.0.0) lib/action_controller/metal/strong_parameters.rb:173:in `require'

我在上面的代码中做错了什么。为什么我不能发送我的参数。我应该调整什么才能使这项工作。我对强大的参数有点困惑,如果有人有任何建议,我将不胜感激。在互联网上搜索,我得到了一些不相关的东西,所以想知道是否有人可以提供帮助。

谢谢,

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 params strong-parameters


    【解决方案1】:

    ActionController::ParameterMissing 基本上是说当前请求不符合params.require(:upload) 即 params[:upload] 不存在。

    看起来问题不在于您的 update 操作,而在于您的 edit 操作或您构建表单的方式中的编辑视图。您应该发布您的 def edit 代码和 edit.html.erb 或任何正在构建更新表单的视图,以进一步解决此问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多