Rails

deviseの暗号化アルゴリズムの変更方法

認証を、Rails組込みのhas_secure_passwordからdeviseに変更した時に、なにか変更があるかと思ったが、 どちらもbcryptを使っているのでそのまま移行できた(bcryptはダイジェストにストレッチの情報を含むため)。 ただ、せっかく調べたのでメモとして残して…

devise で現在のパスワードを入力せずにアカウント情報を変更できるようにする

「Devise でユーザーがパスワードなしでアカウント情報を変更するのを許可」 でも変更方法がのっていたけれど、そちらでは Devise::RegistrationsController#update を オーバーライドして、update_resource部分を変更していた。

Railsでajaxを使って結果をjsonで受け取る方法

jquery-railsを使った時のajaxの動作のメモ。 フォームをajaxで送信し、jsonを受け取る処理を想定している。

ActiveSupport::Concern#includedを調べた

Railsでよく出てくる includedが分からなかったので調べた時のメモ

Railsチュートリアル読了

やっとRailsチュートリアルが終わりました。始めてから1ヶ月以上も経っています。 疑問に思ったことを、その都度調べたせいか、かなり時間がかかってしまいました。 かといって、疑問に思ったことを放置しすぎると後で分からないところが増えて挫折するので…

Rails4では updated_at等がnot nullではなくなったらしい。

Rails4.0に更新した後にdb:migrate:resetを実行したらschema.rbのupdated_atやcreated_atからnull: falseがなくなった。 調べてみたらこんなコミットがあった。 読むと、テーブルを変更してタイムスタンプのカラムを追加するとNOT NULLのカラムには何らかの…

validatesメソッドでの条件指定

以前にも少し触れたActiveModelのvalidatesメソッドだが、以下のように個々のバリデーションに対して条件の指定ができる。

Rails Tutorial (2)

6章

Rails Tutorial (1)

Rails Tutorial(4.0版)をやっているので途中で思ったこととか、詰まったところを書いていく。

RailsでのHash#sliceとHash#slice!の違い

Hash#slice!がHash#sliceを破壊的にしただけのメソッドだと勘違いしてしばらく悩んだ。 h = { a:1, b:2, c:3, d:4 } h.slice(:c, :d) #=> {:c=>3, :d=>4} h #=> {:a=>1, :b=>2, :c=>3, :d=>4} h.slice!(:c, :d) #=> {:a=>1, :b=>2} h #=> {:c=>3, :d=>4} sli…

ActiveModelのvalidatesメソッド

validates_xxx_ofメソッドが定義されているバリデーションは、すべてvalidatesメソッドでも使える。 ただ、書き方が少し違う。 validates_presence_of :name validates :name, presence: true また、validatesメソッドでもオプションは使えるので次のように…