ブックマーク / techracho.bpsinc.jp (2)

  • Railsのmigrationで生SQLを使う+パラメータを使う|TechRacho by BPS株式会社

    migrationファイル内では、モデルクラスを使わないのが安全です。 これは、将来的に仕様変更やリファクタでそのモデルがなくなったりリネームされた際、rake db:migrate:resetが通らなくなるからです。 migration内でデータの変換処理をすることも多いので、SQLを生で叩くには以下のようにします。 sql = "UPDATE users SET some_flag = 1;" ActiveRecord::Base.connection.execute(sql) さすがにパラメータを指定したいことも多いですが、ActiveRecordのノリで?などのplaceholderを渡しても処理してくれません。 かといって、自分でエスケープ処理をするのは嫌です。 このあたりのエスケープとプレースホルダー処理は、#sanitize_sql_arrayが担当しています。 protec

    Railsのmigrationで生SQLを使う+パラメータを使う|TechRacho by BPS株式会社
    yuphiel
    yuphiel 2015/09/02
  • 肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳)

    更新情報: 2013/11/19: 初版公開 2021/01/08: 訳文見直し、追記 こんにちは、hachi8833です。今回は、自分が知りたかった、Active Recordモデルのリファクタリングに関する記事を翻訳いたしました。1年前の記事なのでRails 3が前提ですが、Rails 4以降でも基的には変わらないと思います。リンクは可能なものについては日語のものに置き換えています。 なお、ここでご紹介したオブジェクトは、app以下にそれぞれ以下のようにフォルダを追加してそこに配置します。 注記: 以下は使われそうなフォルダを列挙しただけであり、実際にはこの一部しか使いません。 Value Object Service Object Form Object Query Object View Object Policy Object Decorator ⚓ 肥大化したActive

    肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳)
  • 1