IT技術にまつわる実験ノート

「長編を書くより、短編を数多く完成させてください。それが上達への近道です」 by 手塚治虫

Ruby

Ruby の scan メソッドで字数で分割してみる

はじめに ここでは以下の記事を参考にして、Ruby の scan メソッドで文字数で分割してみることにする。 ruby scan 文字列を字数で分割 - railsがんばる子 例 scan メソッドの引数に /.{1,5}/ を渡すと、文字列を5文字ずつに分割できる。 ↓ -> 文字列を字数で…

Rails のビューで form.submit に class をつけてみる

以下のようにすると、submit ボタンをスタイリングできるようになる。 form.submit の後ろに「,」をつけると、エラーになる。 参考 ruby on rails - Add a CSS class to <%= f.submit %> - Stack Overflow

ローカルで sendgrid を使ってみる

sendgrid のアカウントを作成する sendgrid を使うには、アカウントを作成する必要がある。登録を完了すると、翌2営業日以内に「ユーザー名」が送信されてきて、sendgrid を使えるようになる。 新規会員登録 | SendGrid【日本公式サイト】 -> 情報を入力して…

Rails5 でモデル名を変更してみる

はじめに ここでは以下の記事を参考にして、Rails5 でモデル名を変更してみることにする。 【Rails】Model名変更5ステップ - Augmented Usamimi 使ってみる サンプル用のアプリを作成する。 rails new model_change_sample cd model_change_sample サンプル…

devise のコントローラをカスタマイズしてみる

はじめに ここでは以下の記事を参考にして、Rails5 で devise のコントローラをカスタマイズしてみることにする。 RubyonRails:deviseのControllerをちょっとだけカスタマイズする - Madogiwa Blog 使ってみる ざっくりとアプリを作成する。 rails new devi…

Rails で中間テーブルを使ってみる

はじめに ここでは以下の記事を参考にして、Rails で中間テーブルを使ってみることにする。 Master Many-to-Many Associations with ActiveRecord — SitePoint 中間テーブルの説明 参考:railsで多対多のアソシエーションの作り方と、出来ること - Qiita 使…

Rails の datetime_select メソッドを使ってみる

はじめに ここでは以下の記事を参考にして、Rails の datetime_select メソッドを使ってみることにする。 Railsで簡単に日時選択ができるdatetime_selectメソッドの使い方をまとめてみました - (゚∀゚)o彡 sasata299's blog 使ってみる ざっくりとアプリを作成…

Rails で年齢計算をしてみる

はじめに ここでは以下の記事を参考にして、Rails でユーザーの誕生日から年齢を計算してみることにする。 [Ruby on Rails]生年月日から年齢を計算する - Qiita 使ってみる ざっくりとアプリを作成する。 rails new birthday_sample cd birthday_sample サン…

Ruby で 早期return を使ってみる

はじめに ここでは以下の記事を参考にして、Ruby で 早期return を使ってみることにする。 rubyで早期return - Qiita 説明 使ってみる 以下のコードでは return で関数を終了して、"buzz" を出力しない。 return 文の後置 if 文が false と nil の場合は ret…

Ruby の method_missing でゴーストメソッドを使ってみる

はじめに ここでは以下の記事を参考にして Ruby の method_missing でゴーストメソッドを使ってみることにする。 Ruby Meta Programming · GitHub Ghost Methods - Introduction to Active Record | Coursera 説明 Javaエンジニアが、Rubyを始めてみて受けた…

rails-18n を使ってみる

使い方 参考:https://github.com/svenfuchs/rails-i18n 使ってみる デフォルトでの config/locals ディレクトリには、en.yml ファイルしかない。ここに ja.yml ファイルを追加する。 rails-18n での ja.yml は、以下の URL で提供されている。 https://raw.…

Rails の config/credentials.yml.enc を使ってみる

使い方 参考:Rails5.2から追加された credentials.yml.enc のキホン - Qiita 使ってみる 以下のコマンドで、暗号化された内容を復号して表示できる。 bin/rails credentials:show Credentials の編集は、以下のコマンドで実行する。ここでは $EDITOR が指定…

Rails の human_attribute_name メソッドを使ってみる

ドキュメント 参考:ActiveModel::Translation モデルの属性名を human format(人間がわかりやすいよう?)に処理してくれるメソッドとのこと。 使ってみる ↓ とにかく、モデルの属性名である :created_at と :updated_at がそれぞれ「Created at」「Update…

rbenv-installer を使ってみる

公式サイトは以下のページ。 GitHub - rbenv/rbenv-installer: Installer and doctor scripts for rbenv rbenv-installer は、rbenv のインストール・アップデートを行ってくれるとのこと。 rbenv の開発チームが作成しているので、信頼性が高いはず。 使っ…

Rails の scope メソッドを使ってみる

参考:ActiveRecord::Scoping::Named::ClassMethods 使ってみる

Rails の simple_format メソッドを使ってみる

参考:ActionView::Helpers::TextHelper 使ってみる ↓ ↓ 改行の "\n" は <br>タグを使うとのことだが、<p></p> になった。よくわからなかったので、修正する。 ↓ ↓ <br>タグの改行が入った。 まとめ とにかく、simple_format メソッドは以下のことを処理する。 改行を段落と…

Rails の order と reverse_order メソッドを使ってみる

order メソッドの引数は、シンボルやハッシュで指定しても実行できる。文字列で指定することもできる。 参考:ActiveRecord::QueryMethods なお、reverse_order というメソッドも定義されている。 参考:ActiveRecord::QueryMethods reverse_order メソッド…

Ruby の「ぼっち演算子(&. 演算子)」を使ってみる

ぼっち演算子とは 参考:ruby on rails - Rubyで@token&.userと書いたときの&の意味 - スタック・オーバーフロー 使ってみる 以下の例の場合、変数 hoge は、文字列オブジェクトを参照しているので、&.演算子で upcase メソッドを通常通り呼び出すことができ…

Rails バリデーションの numecality: { only_integer: true } を使ってみる

Rails ガイド 参考:Active Record バリデーション | Rails ガイド 使ってみる ↓ 数値以外を入力すると、エラーを表示する。 まとめ ユーザーの入力値を数値だけにしたい場合は、バリデーションで numericality: { only_integer: true } のオプションを使う…

Rails バリデーションの uniqueness: { case_sensitive : false } を使ってみる

Rails ガイド Active Record バリデーション | Rails ガイド 使ってみる uniqueness: { case_sensitive: false } を使うと、大文字・小文字を区別しないことになる。 ここでは、以下のように、ユーザー名が「aaaa」のユーザーが存在しているとする。 ↓ 新し…

Rails の label メソッドで、文字列を明示的に指定する

ドキュメント ActionView::Helpers::FormBuilder 使ってみる label メソッドの第二引数に、文字列で指定すると、その文字列をラベルとして使うことができる。 ↓ 第二引数で文字列を指定しなかった場合は、モデルの属性名を出力する。 ↓ まとめ とにかく、lab…

Rails の date_select メソッドを使ってみる

ドキュメント 参考:ActionView::Helpers::DateHelper 使ってみる ↓ use_month_numbers オプションを指定しない場合は、月を英語の文字で出力する。 ↓ なお、date_select メソッドは、以下の参考リンクの通り、オプションの数が多い。 参考 date_selectのオ…

Ruby の require は、Kernel モジュールで定義されたメソッド

知らなかったので、メモっておく。 参考:https://docs.ruby-lang.org/ja/latest/method/Kernel/m/require.html Kernel モジュールで定義されたメソッドとして require を呼び出していたのだなと。 補足 その他、例外を発生させる raise も Kernel モジュー…

Rails のマイグレーションファイルの記述をミスったのでロールバックする

ミス発見 email カラムの型を Date型にしてしまっていた。なんてこったい。 ↓ 修正 ロールバックしてみる ロールバックの前に、bin/rails db:migrate:status を実行してみる。このコマンドで現在のマイグレーションのバージョンを確認できるとのこと。Status…

Rails のルーティングの基本を試してみる

動機 ややこしいので、書いておくことにする。わかったようで、わかっていないものは、書いて残しておくことにする。 get "hoge" => "foo/bar" 以下のルーティングのときは、 /about にアクセスすると、topコントローラの about アクションを実行する。 ↓ ge…

rails new のオプション -BCMT

書籍「基礎 Ruby on Rails 改訂4版」をやってみたところ、以下のようなコマンドを実行することになった。 とりあえず、-BCMT がどんなオプションなのか、まとめておくことにする。 というわけで、bundle をスキップして、action-cable をスキップして、actio…

Proc は使い捨て用途に向いている

参考:class Method (Ruby 2.5.0) リファレンスマニュアルに書いてあった。なるほどなと。 なお、Proc とは無名関数であるとのこと。個人的には、無名関数と言ってくれた方がわかりやすい。 参考 無名関数を生成する - Ruby Tips!

block_given? メソッドは、Kernel モジュールで定義されている

参考:module function Kernel.#block_given? (Ruby 2.5.0) なんで急に block_given? メソッドが出てきて、使えるのか?と疑問に思って調べたところ、Kernel モジュールで定義されたメソッドとのこと。 Kernel モジュールの説明は以下の通り。 参考:module …

Ruby で Singleton モジュールを使ってみる

エラー発生 いや、singleton モジュールを require して、include したのだが…。 頭文字が小文字だった…。require の小文字につられて…。 ↓ 修正 使ってみる ↓ 実行 まとめ Singleton モジュールをインクルードしたクラスは、「唯一、1つだけ」のインスタン…

show アクションのテストでハマった話

テストでエラー発生 ActiveRecord::RecordNotFound: Couldn't find Book with 'id' = 1 rails c で確認してみる。うーん、データベースには id: 1 のレコードが入っているのだが…。 エラーとなったコードは以下の通り。show アクションに { id: 1 } のパラメ…