ruby-on-rails - 如何允许嵌套属性的强参数?

标签 ruby-on-rails ruby parameters

当我尝试接受来自表单的嵌套属性时,我在日志中收到一个Unpermitted parameters: latitude, longitude, address 错误。确切的参数看起来像:

{  
  "widget"=> {
    "owner"=>"100", 
    "name"=>"Widget Co", 
    "locations_attributes" => {
      "0"=> {
        "latitude"=>"51.4794259", 
        "longitude"=>"-0.1026201", 
        "address"=>"123 Fake Street"
      }
    }
  },
  "commit"=>"Create Supplier", 
  "action"=>"create", 
  "controller"=>"widgets"
}

一个小部件有_许多个位置,一个位置属于一个小部件。参数设置在 widgets_controller 中,我认为它会允许“0”以下的所有内容,但似乎不是?

def widget_params
  params.require(:widget).permit(:owner, :name, locations_attributes: [{"0" => []}])
end

是否有有效/更好的方法来接受这些参数?

谢谢

最佳答案

试试这个

def widget_params
  params.require(:widget).permit(:owner, :name, locations_attributes: [:id, :latitude, :longitude, :address])
end

关于ruby-on-rails - 如何允许嵌套属性的强参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30872461/

相关文章:

ruby-on-rails - Rspec 未在 Rails 4 beta 中生成 *_spec.rb 文件

ruby-on-rails - 我们什么时候知道应该使用符号?

spring - Spring ConversionFailedException 错误 HTTP 状态的自定义

javascript - 在 Javascript 构造函数中将键/值对象作为参数传递

ruby-on-rails - 使用 link_to 创建图像链接

c++ - 从单个标志 C++ 获取多个参数

ruby-on-rails - Rails collection_select 默认选择

jQuery 只加载一次

ruby-on-rails - Gem:将我自己的模块包含到 ActiveModel::Validations 中

mysql - 如何实现可移植的 MySQL 并在 Linux 下以非 root 身份从 Ruby 连接到它