Columna vacía al crear usando modelo y consola

2023-01-25 04:21:09

He creado un modelo User como se muestra a continuación:

#app/models/user.rb

   

class User < ActiveRecord::Base
         attr_accessor :name, :email

      email_regex = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i

        validates :name, :presence=>true, :length => { :maximum => 50 }
      validates :email, :presence=>true, :format => {:with => email_regex},
                :uniqueness => {:case_sensitive => false}
    end

El siguiente es el código de migración:

    class CreateUsers < ActiveRecord::Migration
      def change
        create_table :users do |t|
          t.string :name
          t.string :email

          t.timestamps null: false
        end
      end
 
    end

Después de invocar la migración, cuando creo Filas en la base de datos, no agrega el campo de nombre y correo electrónico en la base de datos.

Esto es lo que he probado:

    us1=User.create!(:name=>"Test1",:email=>"[email protected]")         (0.0ms)  begin transaction        User Exists (0.0ms)  SELECT  1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('[email protected]') LIMIT 1       SQL (0.0ms)INSERT INTO "users" ("created_at", "updated_at") VALUES (?, ?)  [["created_at", "2015-04-28 14:30:18.874632"], ["updated_at", "2015-04-28 14:30:18.874632"]]       (109.2ms)  commit transaction      => #<User id: 1, name: nil, email: nil, created_at: "2015-04-28 14:30:18", updated_at: "2015-04-28 14:30:18">

Versión de Ruby y Rails: Rieles: 4.2.1 Rubí: 2.0.0p643

¿Qué hay de malo con el Modelo y la migración o con mi aplicación?

- doptimusprime

Source
zh
Responder


0
  • Eliminar la línea

    attr_accessor :name, :email
    

    Puesto que ya agregó estas columnas en la migración. (Rails generará automáticamente los métodos apropiados a partir del esquema de la base de datos).