私はLyndaコースを受講しており、データベースを移行する準備ができています。したがって、最初は、新しいバージョンのRails(3.2.6)のデフォルトとビデオの構文にいくつかの違いがあるように見えますが、Ruby Webサイトを調べて、それはおそらく問題ではないことがわかりました。 。
しかし、私が立ち往生しているのは、Users
物を入れる列(属性)を定義するモデルを作成するときに、自分で定義したもの(名、姓、電子メール、パスワード)が取得されないことを除いて、すべてを作成することです作成した。作成日、変更日、IDのみがデフォルトであり、そのまま使用できるためだと思います。
ビデオで使用するように指示されているコードは次のとおりです。
class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.string "first_name", :limit => 25
t.string "last_name", :limit => 50
t.string "email", :default => "", :null => false
t.string "password", :limit => 40
t.timestamps
end
end
def down
drop_table :users
end
end
以下の違いの周りに2つのアスタリスクを付けました。主なものはdef up
私のバージョンのデフォルトですが、ビデオバージョンではdef self.up
です。Railsサイトのドキュメントを読んだときに気付いたもう一つのことは、引用符の代わりにを使用することになっているということでした:
。ビデオで提供されているコードが機能しなかったので、以下のコードも試してみました。しかし、同じ結果が得られましたが、t.strings
実際にはテーブルに作成されたものはありませんでした。
class CreateUsers < ActiveRecord::Migration
**def up**
create_table :users do |t|
t.string **:**first_name, :limit => 25
t.string **:**last_name, :limit => 50
t.string **:**email, :default => "", :null => false
t.string **:**"password", :limit => 40
t.timestamps
end
end
**def down**
drop_table :users
end
end
したがって、2つの質問:
適切な構文を使用していませんか?
初めてテーブルを「設定」した後、再度設定すると、古い構成が上書きされますか?まったく新しいデータベースを再度作成する必要がありますか?'users'ファイルを変更して構文を再配置し、次にrake db:migrateを実行することで、そこにあるものをすべてオーバーライドできるかどうかはわかりません。
どうもありがとうございました。
-デイブ