【问题标题】:Strong Params in Rails modelRails 模型中的强参数
【发布时间】:2015-06-16 10:53:00
【问题描述】:

我有一个模特Peoples::Friend,我的friend.rb 是:

attr_accessible :name, :age

由于批量分配漏洞,我删除了此行。我有这个控制器peoples_controller.rb

friend = Peoples::Friend.update_attributes(:name => "test", :age => 23)

我删除了上面的行并添加了以下行:

friend = Peoples::Friend.update_attributes(peoples_friend_params)

并添加了这个功能:

def peoples_friend_params
    params.require(:peoples_friend).permit(:name, :age)
end

现在,当我运行 API 时,它会显示 ActionController::ParameterMissing (param is missing or the value is empty: peoples_friend)

怎么了?

【问题讨论】:

  • 您的参数中实际发生了什么?您可以将其从您的日志/服务器输出中复制出来并将其添加到您的问题中吗?
  • 你传递了什么参数?
  • 请发布您的日志。而且Peoples 也是错误的。
  • 复数 peoples 可能是正确的(例如:peoples of Europe),但我不认为是在这种情况下。
  • 您可能缺少 params[:peoples_friend] 中的任何一个参数(:name 或 :age)

标签: ruby-on-rails ruby-on-rails-3 security strong-parameters


【解决方案1】:

问题是我调用此 API 的页面发送了 params 而不是 peoples_friend。所以,我这样做了:

params.permit(:name, :age)

【讨论】:

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