警告:无法为用户批量分配受保护的属性:登录
WARNING: Can't mass-assign protected attributes for User: login
我创建了两个模型user.rb和cart.rb
user.rb
class User < ActiveRecord::Base
attr_accessor :login
has_one :cart
end
cart.rb
class Cart < ActiveRecord::Base
belongs_to :user
end
当我在 rails 控制台中创建用户时,出现消息:警告:无法为用户批量分配受保护的属性:登录
E:\work\my_store>rails c
DL is deprecated, please use Fiddle
Loading development environment (Rails 4.1.8)
irb(main):001:0> user1 = User.new(login: "user1")
WARNING: Can't mass-assign protected attributes for User: login
=> #<User id: nil, login: nil, created_at: nil, updated_at: nil>
irb(main):002:0>
帮我解决这个问题
attr_accessor
和 attr_accessible
之间存在巨大差异 - 您想要使用另一个。 :)
这是 Rails 中的一项安全功能,可防止批量分配。如果您想将某些属性列入白名单,您可以这样做
class User < ActiveRecord::Base
attr_accessible :login
end
或者在创建模型时不使用质量分配。
我创建了两个模型user.rb和cart.rb
user.rb
class User < ActiveRecord::Base
attr_accessor :login
has_one :cart
end
cart.rb
class Cart < ActiveRecord::Base
belongs_to :user
end
当我在 rails 控制台中创建用户时,出现消息:警告:无法为用户批量分配受保护的属性:登录
E:\work\my_store>rails c
DL is deprecated, please use Fiddle
Loading development environment (Rails 4.1.8)
irb(main):001:0> user1 = User.new(login: "user1")
WARNING: Can't mass-assign protected attributes for User: login
=> #<User id: nil, login: nil, created_at: nil, updated_at: nil>
irb(main):002:0>
帮我解决这个问题
attr_accessor
和 attr_accessible
之间存在巨大差异 - 您想要使用另一个。 :)
这是 Rails 中的一项安全功能,可防止批量分配。如果您想将某些属性列入白名单,您可以这样做
class User < ActiveRecord::Base
attr_accessible :login
end
或者在创建模型时不使用质量分配。