【问题标题】:Rails 4 Strong Parameters Unknown KeyRails 4强参数未知键
【发布时间】:2013-12-27 17:14:37
【问题描述】:

我遵循 Railscast 将应用程序迁移到 Rails 4 并转换到强参数。 http://railscasts.com/episodes/415-upgrading-to-rails-4

我的 Create/New 方法运行良好。但是,当我尝试更新记录时遇到问题。我不断收到以下消息:

CustomersController#update 中的参数错误 未知键:first_name

我查看了 Stack Overflow 上的各种帖子,还生成了一个新的 Rails 4 应用程序来验证我做的事情是否正确。我显然错过了一些东西。

这是我的更新方法的控制器代码:

def update
    @customer = Customer.find(customer_params)

    respond_to do |format|
      if @customer.update(customer_params)
        format.html { redirect_to @customer, notice: 'Customer was successfully updated.' }
        format.json { head :ok }
      else
        format.html { render action: "edit" }
        format.json { render json: @customer.errors, status: :unprocessable_entity }
      end
    end
  end

这里是我设置强参数的地方:

private

def set_customer
      @customer = Customer.find(params[:id])
end

def customer_params
  params.require(:customer).permit(:first_name, :middle_initial, :last_name, :address1, :address2, :city, :state, :zip, :phone, :gender, :email, :membership_id, :date_of_birth)
end

非常感谢任何帮助。

【问题讨论】:

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


    【解决方案1】:

    您不想在find 语句中使用customer_params,您需要使用普通的find(params[:id])。

    强参数仅在创建/更新数据库记录时使用。它们有效地替换了模型中的 Rails 3 attr_accessible 调用。

    【讨论】:

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