簡體   English   中英

Rails控制台未將數據寫入數據庫

[英]Rails Console not writing data to database

我正在閱讀Hartl教程,但遇到了問題。 當我嘗試在控制台中添加用戶時,它不會返回已保存我剛剛輸入的任何信息的信息。 代碼在下面,希望你們可以引導我朝正確的方向發展。 用戶模型:

class User < ActiveRecord::Base

    attr_accessor :name, :email 

    before_save { self.email = email.downcase}
    validates :name, presence: true, length: {maximum: 50}
    VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
    validates :email, presence: true, length: {maximum: 255},
                        format: { with: VALID_EMAIL_REGEX },
                        uniqueness: {case_sensitive: false}
    has_secure_password
    validates :password, length: { minimum: 6 }
end

錯誤:

2.2.0 :003 > User.create(name: "Jim Bob", email: "jim@bob.com", password: "jimmybob", password_confirmation: "jimmybob")
   (0.1ms)  begin transaction
  User Exists (0.1ms)  SELECT  1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('jim@bob.com') LIMIT 1
  SQL (0.4ms)  INSERT INTO "users" ("password_digest", "created_at", "updated_at") VALUES (?, ?, ?)  [["password_digest", "$2a$10$I61hwA3iAQmzsT/wbb0wpOSannOBNPLtQsBhscjakS5OgCi6zJoMq"], ["created_at", "2015-02-13 23:45:32.636129"], ["updated_at", "2015-02-13 23:45:32.636129"]]
   (137.3ms)  commit transaction
 => #<User id: 1, name: nil, email: nil, created_at: "2015-02-13 23:45:32", updated_at: "2015-02-13 23:45:32", password_digest: "$2a$10$I61hwA3iAQmzsT/wbb0wpOSannOBNPLtQsBhscjakS5..."> 

我不明白為什么姓名和電子郵件將無法保存。 請任何幫助將是驚人的。

這是因為您已經為名稱和電子郵件定義了attr_accessor。

attr_accessor將覆蓋活動記錄生成的方法,因此不會將其保存到數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM