rails-settings-cached を使ってみる

 

rails-settings-cached をインストールする。

  • echo 'gem "rails-settings-cached"' >> Gemfile
  • bundle

 

ジェネレーターを実行する。

  • bin/rails g settings:install

 

これで以下のファイルが作成される。

各ファイルにはデフォルトの設定が記述されている。

f:id:matt-note:20190422142948p:plain


マイグレーションを実行する。

 

config/app.yml で設定を管理する。

f:id:matt-note:20190422143306p:plain

 

コンソールから確認してみる。

f:id:matt-note:20190422143356p:plain

-> 設定を管理して、アプリから設定を参照することができた。

 

参考:mastodon では定数管理に rails-settings-cached を使っている。

 

settingslogic を使ってみる

はじめに

ここでは以下の記事を参考にして settingslogic を使ってみることにする。

 

使ってみる

ざっくりとアプリを作成する。

  • rails new setting_sample
  • cd setting_sample

 

settingslogic をインストールする。

  • echo 'gem "settingslogic"' >> Gemfile
  • bundle

 

初期設定用のファイルを作成する。

  • touch config/initializers/0_settings.rb

 

config/initializers/0_settings.rb ファイルを編集する。

f:id:matt-note:20190422135056p:plain

 

定数の管理用に config/settings.yml ファイルを作成する。

  • touch config/settings.yml

 

config/settings.yml ファイルを編集する。

f:id:matt-note:20190422135845p:plain

 

コンソールを起動して確認してみる。

f:id:matt-note:20190422135538p:plain

-> config/settings.yml ファイルで定数管理して、アプリから定数を参照できるようになった。

 

Rails で content_for メソッドを使ってみる

はじめに

ここでは以下の記事を参考にして Rails で content_for メソッドを使ってみることにする。

 

使ってみる

ざっくりとアプリを作成する。

  • rails new title_sample
  • cd title_sample

 

コントローラを作成する。

  • bin/rails g controller Pages about help

 

ページにごとに title 要素の値を動的に設定できるようにする。

application.html.erb で以下のようにする。

f:id:matt-note:20190422124931p:plain

 

app/views/pages/about.html.erb で content_for メソッドを呼び出す。

f:id:matt-note:20190422125024p:plain

 

サーバーを起動して、/pages/about にアクセスしてみる。

f:id:matt-note:20190422125228p:plain

-> title 要素を動的に設定することができた。

 

app/views/pages/help.html.erb で同様の設定をすると、ヘルプページ用の title 要素を設定できる。

f:id:matt-note:20190422125355p:plain

 

ヘルパーメソッドを定義する。

app/helpers/application_helper.rb で title メソッドを定義する。title メソッドでは引数を1つ受け取って、content_for メソッドのブロックに渡す。

f:id:matt-note:20190422130247p:plain

 

ビューで title メソッドを呼び出す。引数には文字列を渡すだけで良いようにした。

f:id:matt-note:20190422130708p:plain

 

これでシンプルに title 要素の値を動的に設定することができる。

f:id:matt-note:20190422130814p:plain

 

【WIP】書籍「失敗から学ぶRDBの正しい歩き方」で引用されている記事のざっくりまとめ

第3章 やり過ぎたJOIN

 

第4章 効かないINDEX

 

第6章 ソートの依存

 

第7章 隠された状態

 

第9章 強すぎる制約

 

第10章 転んだ後のバックアップ

 

 

sed でテキストの最終行だけを削除してみる

はじめに

ここでは以下の記事を参考にして、テキストの最終行を削除してみることにする。

 

使ってみる

サンプル用のファイルを作成する。

f:id:matt-note:20190421005948p:plain

 

最終行のテキストを削除する。

f:id:matt-note:20190421010110p:plain

-> 最終行を削除することができた。

 

Ruby の respond_to? メソッドを使ってみる

説明

f:id:matt-note:20190421003744p:plain

 

使ってみる

サンプル用に Hogeクラスで hoge メソッドを定義しておく。

respond_to? メソッドで、引数で指定した名前を持つメソッドがオブジェクトにあるか確認してみる。

f:id:matt-note:20190421003619p:plain

f:id:matt-note:20190421003644p:plain

-> piyo メソッドは Hoge クラスのオブジェクトにないので、false を返す。

 

これでオブジェクトがメソッドを持つかどうかに対して、処理を振り分けることができる。

 

respond_to? でのメソッド名の指定は、シンボルでも実行できる。

f:id:matt-note:20190421004618p:plain

 

Ruby の send メソッドを使ってみる

はじめに

ここでは以下の記事を参考にして Ruby の send メソッドを使ってみることにする。

 

使ってみる

Hoge クラスで hoge_hoge メソッドを定義して、send メソッドの引数にメソッド名を指定して実行してみる。

f:id:matt-note:20190420231342p:plain

f:id:matt-note:20190420230911p:plain

-> 実行できた。send メソッドの引数でメソッド名を指定する時は、文字列でもシンボルでも実行できる。

 

引数のあるメソッドを send メソッドで呼び出してみる。

f:id:matt-note:20190420232040p:plain

f:id:matt-note:20190420232126p:plain

-> send メソッドの第一引数でメソッド名を指定して、第二引数でメソッドの引数を指定できる。

 

メソッドの処理を上書きしてみる。

f:id:matt-note:20190420233114p:plain

f:id:matt-note:20190420233236p:plain

-> hoge_hoge メソッドが piyo piyo を返すように変更できた。

 

send メソッドの引数で文字列を連結して、メソッドを実行してみる。

f:id:matt-note:20190420234524p:plain

f:id:matt-note:20190420234541p:plain

-> メソッド名を動的に指定して、実行できた。