Ruby on Rails

Pluckのあるクエリでexplainをどうやって出力するか

idが1000より大きいユーザの地域一覧を取りたかった User.distinct.where('id > 1000').pluck(:city) というコードを書いて、「distinct意味ないじゃん」みたいなことを言われた 実はクエリの遅延評価によってpluckまでクエリに含まれるのだが、それを以下の…

RailsでDevise使った上でAPI作ろうとした話

Devise(GitHub - plataformatec/devise: Flexible authentication solution for Rails with Warden.)はユーザ登録・ログイン関係をよしなにやってくれるけど、フロントエンド用のAPI作ろうと思うと苦労する ちょっと調べた感じだと色々書かないといけないっ…

Capistranoで独自Taskを作る時はnamespaceをrakeにしてはいけない

Capistranoでデプロイ環境のrakeタスクを実行しようとして、 ruby - How do I run a rake task from Capistrano? - Stack Overflow これとか参照して独自タスクを作ってみた。

Rails4 Strong Parametersによって多段saveがエラーになった話

Rails4でStrong Parametersが導入されて大抵はpermitとかやれば解決できるんだけどそれだと足りなかったときの話

Rails - Array#uniq使いたいのにActiveRecord::QueryMethods#uniqが呼ばれてしまう

たとえばシルバ作の本で、タイトルの一文字目が一緒だったら同じ本とみなすような不可解な取り方をしたいとき、 books = Book.where(author: "シルバ") books.uniq{|book| book.title.first} こうすると遅延評価の影響でuniqがSQLのdistinctとみなされてしま…