gpt4 book ai didi

ruby-on-rails - rails 错误: Can't mass-assign protected attributes

转载 作者:行者123 更新时间:2023-12-03 07:31:59 25 4
gpt4 key购买 nike

我正在尝试构建一个极其简单的 AddressBook Rails 应用程序。但是,我收到此错误“无法批量分配 protected 属性:city_id”。我怎样才能解决这个问题?请随时在有关以下 Rails 代码的答案中添加任何评论/建议。谢谢。

我如何创建该项目(从头开始):

rails new demo
rails generate model City name:string
rails generate scaffold User name:string city:references
rake db:migrate

db/seeds.db:

City.create(name: "City1")
City.create(name: "City2")
City.create(name: "City3")

rake 数据库:种子

更改了此行<%= f.text_field :city %>来自app/views/users/_form.html.erb<%= f.collection_select :city_id, City.all, :id, :name %>

已更改user.rb自动生成行belongs_to :cityhas_one :city .

已添加belongs_to :citycity.rb

P.S:我使用的是 Rails 3.2.3 和 Ruby 1.9.3。

最佳答案

rails 3.2.3 中有一个重要的安全变更,要求您通过将 config.active_record.whitelist_attributes 设置为 false 来显式允许批量分配

https://weblog.rubyonrails.org/2012/3/30/ann-rails-3-2-3-has-been-released/

http://www.h-online.com/security/news/item/Rails-3-2-3-makes-mass-assignment-change-1498547.html

或者(更好),您只需为模型中您希望能够更改的属性设置 attr_accessible 即可,例如:

attr_accessible :city_id, :name # list all fields that you want to be accessible here

请检查rails security guide有关 Rails 中质量分配的更多信息。

关于ruby-on-rails - rails 错误: Can't mass-assign protected attributes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10050797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com