Модель пользователя:
class User < ActiveRecord::Base
attr_accessor :name, :email
has_secure_password
validates :password, presence: true, length: { minimum: 6 }
end
Проблема в том, что в консоли Rails атрибуты name, email, password, password_confirmation не отображаются.
Я подозреваю, что первые два вызваны настройкой attr_accessor :name, :email
, а последние два - has_secure_password
Но когда я вызываю эти атрибуты по отдельности, они появляются:
Loading development environment (Rails 4.2.0)
2.2.1 :001 > u = User.new(name: "asd", email: "[email protected]", password: "qweasd", password_confirmation: "qweasd")
=> #<User id: nil, name: nil, email: nil, created_at: nil, updated_at: nil, password_digest: "$2a$10$a98/zxfH0zaT0Hh.xalVPOxwbJiXAkH17BiRg.sV4hw...">
2.2.1 :002 > u
=> #<User id: nil, name: nil, email: nil, created_at: nil, updated_at: nil, password_digest: "$2a$10$a98/zxfH0zaT0Hh.xalVPOxwbJiXAkH17BiRg.sV4hw...">
2.2.1 :003 > u.name
=> "asd"
2.2.1 :004 > u.email
=> "[email protected]"
2.2.1 :005 > u.password
=> "qweasd"
2.2.1 :009 > u.save
(0.2ms) begin transaction
User Exists (0.2ms) SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('[email protected]') LIMIT 1
SQL (0.4ms) INSERT INTO "users" ("password_digest", "created_at", "updated_at") VALUES (?, ?, ?) [["password_digest", "$2a$10$a98/zxfH0zaT0Hh.xalVPOxwbJiXAkH17BiRg.sV4hwFXp2jUiTnm"], ["created_at", "2015-06-10 02:42:22.437148"], ["updated_at", "2015-06-10 02:42:22.437148"]]
(130.8ms) commit transaction
=> true
2.2.1 :010 > u
=> #<User id: 3, name: nil, email: nil, created_at: "2015-06-10 02:42:22", updated_at: "2015-06-10 02:42:22", password_digest: "$2a$10$a98/zxfH0zaT0Hh.xalVPOxwbJiXAkH17BiRg.sV4hw...">
2.2.1 :011 > u.name
=> "asd"
Я все тщательно проверил и не могу найти, что вызывает это, я буду очень признателен за любое понимание того, что на самом деле происходит под капотом.
User.column_names
в консоли рельсов - person Vrushali Pawar   schedule 10.06.2015attr_accessor
для столбцов db в stackoverflow.com/questions/30683662/ - person jvnill   schedule 10.06.2015