読者です 読者をやめる 読者になる 読者になる

脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

RailsでデフォルトのDB以外を使う方法&ActiveRecordのvalidate機能を使う方法

Rails ruby

RailsのDBをsqliteから他(NOSQLとか)に変更したい場合

  • modelファイルで継承しているActiveRecord::Baseを消してやればOKです
# class Test < ActiveRecord::Base <== 通常はこっち
class Test
  ${処理}
end

しかし、これではせっかくのRailsを便利にしているActiveRecordの機能が使えません。
そこで、以下でvalidate機能を例にSQLite以外のDBを使いながら、ActiveRecordの機能を利用する方法を書きます。

Railsデフォルト以外のDBを使っていてもvalidate機能を利用する方法

class Test
  include ActiveModel::Model

  attr_accessor :param1
  validates :param1, :presence => true

  ${処理}
end
  • まずはActiveModel::Modelをincludeします
  • そして入力値にアクセスできるようにattr_accessorキーワードで指定
  • その後は通常通りに宣言していけばOKです

これでNoSQL等をDBにしていてもActiveRecordのValidation機能が利用できます。