我正在尝试理解Rails,我不明白我是如何正确声明模型属性的。现在我的用户类看起来像这样:
class User < ActiveRecord::Base
has_many :users # Friends
end
通过谷歌搜索我已经明白,在Rails 4之前,可以使用attr_accessible确定属性,如下所示:
attr_accessible :firstname, :lastname, :age, :sex
但这似乎已被弃用,我如何在Rails 4中做同样的事情?
答案 0 :(得分:1)
has_many :users
不是模型属性,model association。这意味着模型User
可以包含许多User
个对象,这是不正确的。 (甚至字面意思也没有意义)
attr_accessible
做什么?
指定可以通过设置的模型属性的白名单 质assignmen
To add attributes to a model, you need to generate migrations.
示例,我们为用户添加name属性:
rails generate migration AddNameToUsers #creates a migration file to add `name` column to `users` table
接下来是:
rake db:migrate # executes migration file creating `name` column in `users` table
现在您可以简单地访问这些属性:
user = User.new
user.name
同样,如果您想在代码的某个位置批量指定此属性,则需要在类中使用attr_accessible
指定此属性,与原始示例中一样。