Matthewの備忘録

忘れたときはここを見ろ。何か書いてある。

RoR

RubyまたはRoRで動的にアクセサーを生成・削除する その1

シンプルに考えれば、ファクトリーメソッドパターンで条件にあったクラスのインスタンスを作ればよいだけなのだが、別の解決方法もあったので備忘録として記しておく。 静的アクセサー Ruby では次のようにクラスに書くとクラスインスタンスを生成したときに…

RoRでDBテーブルのカラムと一致しない項目がある入力フォームを実現する その7

RoR

前回の続き。 matthew.hatenadiary.jp i18n 参考にしていたサイトのページではi18nについては触れられていないので書いておく。 例えば日本語化したいとき、config/locale/ja.ymlというファイルを作っておき、config/application.rbのclass application内に…

RoRでDBテーブルのカラムと一致しない項目がある入力フォームを実現する その6

RoR

さて、これまで幾つかの方法を記しておいたが、どれもアドホック、その場凌ぎの辛うじて小規模な開発で許されるような拙い方法であることは否めない。もっとRoRに相応しい洗練された美しい方法がある。その方法を用いなければ、例えば親子関係があるテーブル…

RoRでDBテーブルのカラムと一致しない項目がある入力フォームを実現する その5

RoR

実は、これまでフォーム専用クラスや特異メソッドを使ってフォーム専用の変数/属性/フィールドを用意してきたが、モデルにそれのアクセサー、必要があればそのバリデーションを書くだけで機能する。しかも、調べ切ったわけではないが、何の副作用もない*1…

RoRでDBテーブルのカラムと一致しない項目がある入力フォームを実現する その4

RoR

記しておかなくてもよいとおもったが、バリデーションは次のように書けることは記しておこう: class AddressBook < ApplicationRecord validates :address, presence: true, length: { maximum: 10, message: "区切り記号の半角空白も含めて10文字以内にし…

RoRでDBテーブルのカラムと一致しない項目がある入力フォームを実現する その3

RoR

前回まではフォーム専用の代理クラスを作っていたが、特異メソッドを加えることでモデルにない属性をフォーム入力項目にしてしまえるもう一つの方法があるので記しておく。 特異メソッド 特異メソッドについては次を参考にすればよい: Rubyist Magazine - R…

RoRでDBテーブルのカラムと一致しない項目がある入力フォームを実現する その2

RoR

前回のままでは実用的ではないので、ストロングパラメーターとバリデーション、そしてi18nについて記しておく。 参考: matthew.hatenadiary.jp ストロングパラメーター ストロングパラメーターの振る舞いについては次の記事が詳しいので見て欲しい。参考(…

RoRでDBテーブルのカラムと一致しない項目がある入力フォームを実現する その1

RoR

RoRでサイトを構築していると、DBのテーブルに存在しないか、テーブルにカラムがない項目を入力して何かさせたくなることがある。検索機能はその一つであろう。その方法は既に沢山の方によって英語や日本で紹介されている。次はその一つ: qiita.com 検索機…

Rails Serverが立ち上がらなくなったら

RoR

開発作業中に、Railsサーバー稼動中のOSがシャットダウンすることはあるだろう。その状況からOS再起動後にRailsサーバーが起動できないことがある。そんなときはテンポラリにある全ての情報を一掃すると解決することがある。Railsアプリを配置したディレクト…

rbenv で複数の Ruby 環境を整える その1

公私ともに Ruby を扱うことが多くなってきたのと、バージョンが異なる Ruby を動かさなくてはならなくなったので、rbenv を導入してバージョンの異なる Ruby を使っていくことにした。因みに、Bash on Ubuntu on Windows 上、そして Virtual Box と Vagrant…

RoRで「テーブルごとに初期データを登録する」に補足

とある自発的なプロジェクトのためにソフトウェア開発をしています。RoRを利用しているのですが、所謂車輪の際発明をしたくないので、先人のお知恵を拝借しているのですが、その一つに「テーブルごとに初期データを登録する」というテーマで解説記事とスニペ…