2012-04-25 15 views
1

以前は、モデル用に生成されたスカフォールドを使用してモデルを手動で作成したローカルホスト専用のRoRアプリケーションを作成していました。私はSQLiteを使ってNetbeansでこれを行いました。Ruby on Railsは私が達成しようとしているものに適していますか?既存のMySQLデータベース用のCRUDスカフォールドの作成

私はMySQLデータベースを持つサーバーを持っており、データベース内のデータを簡単に表示し、編集/削除などのいくつかのオプションを提供するクイックCRUDアプリケーションを作成したいと考えています。私のデータベースはすでにMySQLによって指定されているので、これは膨大な数のワームを開くように見えるので、NetBeansベンチャーがRoRのスキャフォールドで生成されたクラウドWebアプリケーションに比べてはるかに単純ではありません。

私は現在のデータベースdbのスキーマをダンプしてみました。それを掻き集め、足場を生成しました。これは正しいアプローチですか? Magic Model Generatorについても読んでいます。これは、MySQLデータベースをRoRモデル形式にする最も良い方法ですか? http://magicmodels.rubyforge.org/magic_model_generator/

私のデータベース構造は、データが基本操作を実行できるように、迅速なCRUD Webアプリケーションをモックアップするのに適していると思いますか?

以下は、私のMySQLデータベースのschema.rbです。 userIdとattachmentIdにはFKの関係があります。

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

    create_table "attachments", :primary_key => "attachmentId", :force => true do |t| 
    t.string "attachmentName",    :null => false 
    t.string "fileType",  :limit => 30, :null => false 
    t.binary "content",      :null => false 
    t.string "printCode" 
    end 

    create_table "emails", :primary_key => "emailId", :force => true do |t| 
    t.integer "userId",  :limit => 11, :null => false 
    t.integer "attachmentId", :limit => 11, :null => false 
    t.string "body",   :limit => 1000 
    t.string "subject" 
    end 

    add_index "emails", ["attachmentId"], :name => "attachmentId", :unique => true 
    add_index "emails", ["userId"], :name => "userId" 

    create_table "printUsers", :primary_key => "userId", :force => true do |t| 
    t.string "email", :null => false 
    end 

    add_index "printUsers", ["email"], :name => "email", :unique => true 

end 
+0

私はあなたの質問で混乱しています。 dbがすでに存在する場合、なぜそれを再度作成したいのですか?アクティブなレコードモデルを作成し、それらの関係を指定するだけです。特定のフィールドは、ARリフレクション機能を使用して各アクティブレコードモデルによって自動的に計算されます。 –

答えて

1

既存のデータベースでレールを使用するには、いくつかのアプローチがあるようです。 Connect rails to existing postgres DB - models not seen by console and controllers、特にそのリンク:http://magicmodels.rubyforge.org/magic_model_generator/http://blog.aizatto.com/2007/05/21/activerecord-without-rails/

レール付きのActiveRecordを使用する必要はありません。モデルには任意のオブジェクトを使用できます。したがって、sequelまたはarelのようなものを使用してデータにアクセスする方が簡単かもしれません。

もう1つのアプローチは、既存のデータベースからモデルをスキャフォールディングして生成した新しいデータに移行することです。

+0

さて、私は 'rails test -d mysql'を実行してアプリケーションを作成しました。また、私の 'database.yml'ファイルを編集してMySQLデータベースへのリンクを格納しました。だから私は今、モデルを作成し、マジックモデルジェネレーターを使ってデータベースからのすべての関連付けをモデルにコピーしたいと思っていますか?それから私は足場を作ることができるはずです、正しい? – Blates

+0

プロジェクトがしばらく更新されていないようです(https://github.com/drnic/magic_model_generator)ので、私はそれがレール3でうまくいくかどうかはわかりません。おそらく足場を失い、テスト(あなたはここから始めるのですか?)、ルーティング、ビュー、モデル、(コントローラを手動で接続している場合はスキップすることができます)、コントローラです。 –

+0

これは、ActiveRecordをレガシーDBに接続するさまざまな方法を示したスライドです。http://www.slideshare.net/napcs/rails-and-legacy-databases-railsconf-2009 –

関連する問題