2014-01-01から1年間の記事一覧

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が分からなかったので調べた時のメモ

SlimでのRubyの出力

SlimでのRubyの出力について Slim内でのRubyコードの出力について調べたのでメモ。 といってもほとんどReadmeに載っていることですが。 SlimではRubyの実行結果を=で出力できます。ですが、それにもいくつか種類があるのでまとめておきます。

Railsチュートリアル読了

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

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

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

SpringでRspecのテストを行うときの設定手順(Rails4.0)

Rails Tutorialをやっていたが、Rspecのテストが遅くなってきたのでspringを使うようにした。 結果的には実時間で2.5秒くらいかかっていたのが、1秒になった。 以下はSpringの設定手順。

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メソッドでもオプションは使えるので次のように…

RSpecの2.14から3.0の変更点

今はRSpecを2.14で書いているのだけど、その記法が3.0で使えたかなと思うことがあったのでどう変わるのかを調べたのでメモ。

トップレベルで定義したメソッドに対して、RSpecで標準入力を扱うようなテストを書く方法

RSpecで標準入力からの入力を行うテストを書こうと思ったが、 どうやって書くのかが分からなかった。調べたところ以下のWebページが見つかった。 Umeyashikiの日記 こちらのページでは、テスト対象のオブジェクトにgetsメソッドのスタブを追加している。ただ…

メソッド定義の時の引数(Ruby)

Rubyでメソッド定義の時の引数をよく忘れるのでメモ。

Sublime TextとGoogle日本語入力

Google日本語入力で使うキーを変更して、Sublime Textと被らないようにするための設定。

テスト駆動開発のポイント

TDD

テスト駆動開発 和田卓人の“テスト駆動開発”講座の動画を見た。テスト駆動開発(TDD)がどういったものかを知ることができたと思う。 TDDで重要なのは、TDDで書くテストは開発を楽にするためのテストであるということ。これが一番大切でこの基準に照らしていけ…

雑記

今日は、HTTPとRakeについて勉強した。

nginxでVirtualHost

VirtualHostについては、この動画がとても分かりやすかった。

nginxのセットアップ

nginxのインストール まずはインストール。

MySQLの学習

MySQLのインストール まず、mysqlをインストールする。apt-getでインストールできるのは5.5だったので、以下のWebページより5.6.17をダウンロードした。

adduserコマンドのオプション -r について

MySQLをインストールしてて、こんなのコマンドを目にした。 sudo useradd -r -g mysql mysql

VirtualBoxのネットワーク設定(ブリッジ接続)

VirtualBox上のDebianにsshサーバーを立てるということで、 まずVirtualBoxのネットワーク設定をブリッジ接続にする。 (デフォルト設定のNATだとホストOSからゲストOS(Debian)にアクセス出来ないため) 次に、ゲストOSに戻って sudo vi /etc/network/interfac…

Vimの復習

vimチュートリアルをやりました。 vimも、あまり使わないからか、 vimチュートリアルを3,4年前に1度やったことあるんだけど忘れていることが多い。 普段使わないとはいえ、たまにはこうやって復習するのもためになるかな。

CSSの練習

既存サンプルのCSSファイルを編集してみた。 変更はレイアウトと色がメイン。 編集後のWebページ

aptについて

aptはDebian用のパッケージ管理システム。

RubyGemとCSS

今日はRubyGemとCSSを学習しました。 RubyGem Rubyライブラリのパッケージ管理システム。 Macで言えばHomebrewのRuby版といったところか。Ruby(1.9以降)をインストールすると一緒に インストールされる。 Bundler Rubyのパッケージ管理システムにはBundlerと…

requireとincludeとextend

requireについて調べたら、includeとextendも気になったので調べた。