Ruby
早期リターンを使うと、コードが読みやすくなります。 例えば、 nil をとりうる値 hoge があって、 nil のときは処理を終了させたいというメソッドの場合、Ruby ではこんな感じになります。 # 早期リターンなし def test if hoge # hoge が nil でないときの…
ルーティングを追加するとき、毎回調べているので少しずつまとめていこうかと思います。 等価な書き方が色々あるので絶対これというわけではありません。 scope URI Pattern にのみ追加されます。 Rails.application.routes.draw do scope :user do resource…
モデルの属性のバリデーションをしたいときに、バリデーションヘルパーの既存バリデーションだけでは足りないことがあると思います。 そのため、Rails ではバリデーションを自作することができます。 その一つの方法としてバリデーションメソッドがあります…
日時を扱うクラスには DateTime と Time の二つがあり、どちらを使えば良いのかを知ることもなく過ごしてきてしまっていたのですが、ざっくりと知ることができたのでメモ。 基本的には Time ( ActiveSupport::TimeWithZone ) を使う Rails 環境においては、…
ローカル環境の Ruboty を slack で動かしてみたときのメモです。 Ruboty の使い方は、先日投稿したエントリにざっくり書いてあります。 komaji504.hateblo.jp slack team を用意する 作っていない場合はこちらから。 Slack: Be less busy slack 用アダプタ…
Ruboty 作者の r7kamura さんのエントリを読んで使ってみました。 r7kamura.hatenablog.com 動かしてみる gem install ruboty ruboty --generate cd ruboty bundle install ここまでで Ruboty が動作する状態になります。 bundle exec ruboty を実行すること…
class Test def say_hoge hoge1 = Hoge.new hoge2 = Hoge.new hoge1.say hoge2.say end end class Hoge def say puts 'hoge' end end こんな感じのクラスがあったとして、 Test#say_hoge で Hoge インスタンスが Hoge#say を1回ずつ実行していることをテスト…
ブロックとは ブロックについてはこちらの記事が分かりやすかったです。 qiita.com ブロックを引数にとるメソッドの定義 定義方法は、ブロックを引数にとることを明示する or しないの2通りがあります。 メソッドを呼び出したときの実行結果は同じです。 明…
1対1の関連を持つ users テーブルと profiles テーブルがあり、User モデルと Profile モデルがそれぞれ以下のように定義されているとします。 users テーブル field type id int プライマリキー name string email string profiles テーブル field type id …