0

Ruby on Rails 3.2.2 を使用しています。データベース テーブル列の存在と、特定のモデル クラスの列のデータ型(例: StringInteger、...)を確認したいと考えています。つまりlib、モデル クラス (例: ) が渡されるメソッドを使用して、ディレクトリ内に Ruby モジュールを実装してArticleおり、関連する特定のデータベース テーブル列のいくつかの条件のみを確認したいと考えています

モジュールメソッドでcolumn_exists? を使用しようとしましたか? 以下のような方法

module MyModule
  def check_column(model_class)
    table = model_class.to_s.tableize

    unless ActiveRecord::Base.connection.column_exists?(table.to_sym, :title)
      raise ...
    end
  end
end

しかし、成功しませんでした: column_existsに関連する (奇妙な) 出力エラー? メソッドはこのようなものです

Mysql2::Error: Table '<MY_APP_NAME>_development.<A_TABLE_NAME>/<ANOTHER_TABLE_NAME>/<ANOTHER_TABLE_NAME>' doesn't exist: SHOW FULL FIELDS FROM `<A_TABLE_NAME>/<ANOTHER_TABLE_NAME>/<ANOTHER_TABLE_NAME>`

実行時にデータベース テーブルの列の存在データ型を適切にチェックするにはどうすればよいですか?

4

1 に答える 1

0

を使用ActiveRecord::Base.connectionして、クエリを DBM に直接送信できます。

そこから、DBM に特定のテーブルを記述するように依頼し、フィールドを解析してデータ型について何かを調べることができます。

于 2012-09-25T14:36:30.120 に答える