ruby-on-rails - 虚拟属性和质量赋值

标签 ruby-on-rails ruby ruby-on-rails-3 activerecord ruby-on-rails-3.2

开发者!我无法理解接下来的情况

例如我有模型

class Pg::City < ActiveRecord::Base
   belongs_to :country  
   #virtual accessors
   attr_accessor :population
   #attr_accessible :city, :isdisabled,  :country_id

end

我可以使用这样的代码:

c = Pg::City.new({:population=>1000})
puts c.population
1000

但是如果我取消注释上面的 attr_accessible 代码会抛出警告

WARNING: Can't mass-assign protected attributes: population

如何将虚拟属性与模型属性一起用于质量分配? 谢谢!

最佳答案

使用 attr_accessor 添加变量不会自动将其添加到 attr_accessible。如果您要使用 attr_accessible,则需要将 :population 添加到列表中:

attr_accessor :population
attr_accessible :city, :isdisabled, :country_id, :population

关于ruby-on-rails - 虚拟属性和质量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9005567/

相关文章:

ruby-on-rails-3 - 有没有办法删除 heroku 上的一个分支

ruby-on-rails - ruby rails : Hello World

ruby-on-rails - Heroku、Rails 和 ActiveUUID——Heroku 使用旧的迁移文件?

ruby-on-rails - 为 Rails 中的所有 Controller 创建一个全局变量

ruby-on-rails - 如何将 Ruby 数组从我的 Heroku 控制台导出为 CSV?

ruby-on-rails - 没有迁移表的 Rails STI 模型

ruby-on-rails - 未定义的方法 `async'(吸盘 gem )

ruby-on-rails - 如何在 Rails 应用程序中使用 link_to 将文章标题添加到 URL?

ruby-on-rails - 更新 rails 中模型的所有数据

ruby-on-rails - 在 Rails 6 中读取存储在 Active Storage 中的 CSV 文件