在 Rails 中,您使用 ORM 从表中提取字段名称,例如,如果您有一个表items
:
|id | name |
|1 | a string|
您将拥有class Item
,假设是一个实例item
,然后您可以访问:
item.id # -> 1
item.name # -> a string
根据你的例子:
def foo
name = 'New Name' # You are not setting the variable, you are creating a local variable called name
# To set variable
self.name = 'a name'
end
或者
def foo
:name => 'New Name' # you are returning a hash, but you are lacking brackets, not setting a variable
end
该行attr_accessible :name, :email
允许您执行此操作:
Item.new({
name: 'asd',
email: 'sad'
})
例如,如果您不添加:email
in attr_accessible
,则上一个会发出警告,例如:
Can't mass-assign protected attributes: email
当您在控制器中收到参数时,这很有用,例如:
Item.new(params[:item])
看到 params,是一个哈希,你可以在 rails 服务器控制台看到它。