2014-10-01から1ヶ月間の記事一覧
ちょっとどのような状況で使うのか、まだピンと来ないけどActiveRecordにはrewhereっていうメソッドがある。 これを使うと前に宣言していたwhere条件をoverrideすることができる。 #rewhereを使ってもその前にpointっていうカラムで条件指定してないからover…
ActiveRecordでテーブルのjoinをする場合以下のように書くと思います。 User.joins(:auth_providers).all.where(auth_providers: { provider: 'facebook' }) 発行されるSQLは次のようになります。 SELECT "users".* FROM "users" INNER JOIN "auth_providers…
rubyで処理速度をはかる時は以下のようにbenchmarkモジュールを使います。 で、この前Railsのコミットログを眺めていたら、gsubメソッドをtrに置き換えたというのがあったので、 試しに以下のように処理の計測を行ってみました。 require 'benchmark' hoge =…
RailsアプリケーションとJavascriptの連携をしたい場合、[gon](https://github.com/gazay/gon)というgemがあります。これを使うとcontroller内でセットした変数をJavascript(rails3以上だとcoffeescriptを使うケースが殆どだと思いますが)内で使う事ができ…
現在業務で使っている解析ツールはrubocopだけだけど、他にも面白いツールがあったのでメモ。まずはrails_best_practices。これはrailsのコードを解析して、よろしくないものを教えてくれます。なかなか良い。rubocopはコーディングチェックなのでrubyとして…
Railsでincludesメソッドを使ってjoinする場合はActiveRecordのjoinsメソッドを使います。 User.includes(:photos) で絞り込み条件がある場合は、例えば以下みたいに記述します。 now = Time.zone.now.at_beginning_of_day User.includes(:photos)where(phot…
通常の場合ActiveRecordのsaveメソッドの戻り値はtrue/falseですが、そうでなく更新結果のオブジェクトを返したい場合以下のように記述するとできます user = User.find(1) user.tap(&:save)
rails4.2のbeta2が出ましたね。 以前かいたActiveJobについて、修正があったので改めて記事を書きました。ActiveJobとはRails4.2から追加された仕組みで、delayed_jobやresqueなどのキューイングを行うgemを同じインターフェースで使えるようにしたものです…