ВНИМАНИЕ: нельзя массово назначать защищенные атрибуты для пользователя: логин

Я создал две модели 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>

помогите мне решить это


person Vitalik Andrysha    schedule 17.04.2015    source источник


Ответы (2)


Между attr_accessor и attr_accessible огромная разница - вы хотите использовать другой. :)

person BroiSatse    schedule 17.04.2015
comment
Извините, учиться из головы начинает не работать))) спасибо за ответ, все работает)) - person Vitalik Andrysha; 17.04.2015

Это функция безопасности в Rails, которая предотвращает массовое назначение. Если вы хотите внести в белый список определенные атрибуты, вы можете сделать

class User < ActiveRecord::Base
  attr_accessible :login
end

Или просто не используйте массовое назначение при создании своих моделей.

person Bart Jedrocha    schedule 17.04.2015