Rails

【RSpec】Feature specを調べた・書いた

環境 OS X YosemiteRuby 2.3.1Rails 5.0.0SQLite3 どう便利 書くことで、実装しなければいけないことが明確になります。 また、仕様からコードに落とし込むので、あいまいな点が早い段階でわかります。 さらに、後から参画するエンジニアにとって「あ、こん…

【Rails】RSpecでフォームから登録したデータをテストする

環境 OS X YosemiteRuby 2.3.1Rails 5.0.0SQLite3 やること RSpecでデータが正しく登録できたか確認する。 RSpecの導入は省略。 INSERTされたデータが想定通りに登録されたか、確認する 1 Gemfileに追記する 2017年5月29日時点ではこんな感じ。 WARNINGが出…

【Rails】カラムのデータ型を変える

環境 OS X YosemiteRuby 2.3.1Rails 5.0.0SQLite3 動機 何も考えずにテーブルを設計してしまい、カラムのデータ型を変更したい。 やること Userテーブルのageカラムのデータ型をstringからintegerにしたい。 1 migrationファイルを用意します rails g migrat…

【Rails】プロジェクトの初期データを用意する

環境 OS X YosemiteRuby 2.3.1Rails 5.0.0 動機 自分のプロジェクトをgit cloneした際に、今まで使っていたDBのデータがなくてつらさを感じた。 なんとかして、用意しておきたい。 どうするのか Railsが提供しているコマンドにrails db:seedがあり、これを利…

【Rails】カスタムバリデーションを設定する

環境 Windows 8.1(けっこうつらい)Ruby 2.3.1Rails 5.0.0 動機 「xxxを入力してください」というエラーメッセージが切ない。 UXを向上させるため、人間味のあるエラーメッセージを設定したい。 どうするのか こんな感じのバリデーションを設定していたとし…

【Rails】Model.newにparamsを渡してしまうのは危険

こんなコードは危ない # controllers/users_controller.rb def create @user = User.new(params[:user]) ... end ユーザー情報すべてを渡してしまっているため、 管理者フラグを含めるカラムが存在する場合、 リクエストにadmin=1相当のデータを含めることで…