2

既存の MySQL データベースにフックして読み取りと書き込みを行いたい新しい Rails アプリがあります。database.yml新しいデータベースに接続するようにファイルを編集済みです。rails c接続が有効であると信じ込ませるエラーをスローしrails sないでください。

モデルや移行はまだ作成していません。必要なモデルを自分の Rails プロジェクトに取り込む簡単な方法はないかと考えていました。

バックアップまたはスキーマをエクスポートする必要がある場合は、Sequel Pro を使用してデータベースに接続できます。それとも、モデルを生成し、すべての列タイプとすべてを手動でコピーする必要がありますか?

ご協力いただきありがとうございます。

4

2 に答える 2

4

ActiveRecord が列名を検出します! 移行を作成する必要はありませんが、モデルを作成する必要があります。

アクティブ レコード モデルを作成すると、アクティブ レコードはクラス名を複数形にすることで接続先のテーブル名を推測します。

そう:

# app/models/book.rb

class Book < ActiveRecord::Base
end

「books」というテーブルを見つけようとします。次に、Book のインスタンスをインスタンス化すると、フィールド名のゲッター/セッターがあることがわかります。

テーブルがこの命名規則に従っていない場合は、テーブル名を手動で定義することもできます。

class Mouse < ActiveRecord::Base
  self.table_name = "mice" 
end

http://api.rubyonrails.org/classes/ActiveRecord/ModelSchema/ClassMethods.html

于 2015-04-10T22:04:12.240 に答える
0

ordersテーブル用に、次の構造を持つ空のモデル ファイルを作成することから始めます。

class Order < ActiveRecord::Base
end

それだけで、注文テーブルですべてのアクティブなレコード マジックを取得できます。コンソールから次のことができます。

> Order.count
 => # Shows the number of rows in orders table
> Order.first
 => # Return the first row from the table
> Order.where(...)
 => # Return selected rows from the table meeting the specified criteria.

からサブクラス化することで得られるアクティブ レコード機能の詳細については、アクティブ レコード クエリ インターフェイスを参照してくださいActiveRecord::Base

于 2015-04-10T22:04:07.350 に答える