3

これは私のユーザーmodel.rbです

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

  validates :name,:presence=>true,:length=>{:maximum=>15}
    validates :email,:presence=>true,:length=>{:maximum=>15}
end

パスワードの新しい列を追加したかった。コマンドを使用しました

rails g migration pass_mig password:string

それから

rake db:migrate

しかし、データベーススキーマではまだ

ActiveRecord::Schema.define(:version => 20130627073430) do

      create_table "users", :force => true do |t|
        t.string   "name"
        t.string   "email"
        t.datetime "created_at", :null => false
        t.datetime "updated_at", :null => false
      end
end

また、Rails コンソールでは、パスワードを新しいユーザー オブジェクト、つまり新しいデータベース エントリに追加することはできません。提案してください。PS:私はレールに慣れていないので、これはばかげた質問かもしれません。私はレールバージョン:3.2.13とルビーバージョン:1.9.3を使用しています

4

2 に答える 2

6

わかりました、これは誰もが常に話しているレールに関する「魔法の」ことの 1 つです。移行を行ってテーブルに列を追加するときの命名規則があります。これを試して:

rails g migration add_password_to_users password:string

実際には、ほとんどすべてのものに重要な命名規則があります。

于 2013-06-27T07:50:55.367 に答える
0

以下に従って、スタンドアロンの移行を追加できます。

rails generate migration AddPasswordToUsers password:string

よりスタンドアロンの移行については、リンクをたどることができます。 http://guides.rubyonrails.org/migrations.html#creating-a-standalone-migration

または、別のことができます。最初に移行を作成する

rails g migration AddColumnToUser

これにより、db/migrate に移行ファイルが作成されます。そのファイルの内容を変更する必要があります。

class AddColumnToUser < ActiveRecord::Migration
  def change
    # all the codes being generated automatically. The following you need to write.
    add_column :users, :password, :string   # this means you are adding password having string type in users table.
  end
end

上記のいずれかの手順を実行した後。ただするrake db:migrate

于 2013-06-27T07:59:12.607 に答える