Railsの情報サイトです。先月(2016年2月)の演習問題「その他」用のテキスト入力欄を持つ選択式入力欄の出題者(黒田)による解答例です。リポジトリにコミットしてありますので、ソースコードの差分をご覧ください。演習問題」という連載の一部です。詳しくは、はじめにをお読みください。今回も応募者は1名(rinpopoyoさん)でした。毎度、ありがとうございます。validationまずは、データベースのマイグレーションスクリプトから見て行きましょう。rinpopoyoさんはこう書きました。endendカラム名こそ異なるものの、私のコードと本質的には同じです。使ったほうがいいかもしれません。次に、HTMLフォームのERBテンプレートを比較してみましょう。</tr>この部分はかなり違いますね。いう定数を定義してラジオボタンにラベルを付けるために使っています。機能を利用しています。Rails』では紹介しませんでした。この機能についての解説を書き始めると長くなるので、省略します。enum」を検索すれば、日本語の解説記事が見つかります。モデルに次のコードを追加しています(実際のコードは1行で書いてありますが、長いので適宜折り曲げました)。カラムの値を次のような書き方で扱えるようになります。利用するというアイデアはとてもよいと思いますが、3点ほど改善案があります。将来的に職業の選択肢が増えることを見越しての措置です。}次に、選択肢リストをループで生成します。この修正を行うと、JavaScriptのコードが動かなくなってしまうので、そのままにしておきましょう。</tr>こうすれば、ラジオボタンそのものだけでなく、横のラベルテキストをクリックしても選択・非選択を切り替えられるようになります。このテクニックは意外に知られていませんが、使い勝手を左右するポイントのひとつです。続いて、バリデーション。「職業として「その他」を選んだ時、それを具体的にテキストで10文字以内で入力できるようにし、何も入力しない場合はバリデーションエラーとする」という仕様をどのように実装すればいいでしょうか。メソッドはここでしか使っていないので、ちょっと冗長な気がします。私なら、次のように書きます。しておくべきでしょう。最終形は次のようになります。}最後に、JavaScriptコードのレビューをして終わりにしましょう。rinpopoyoさんのコードはこうなっています。$(".other_job_text").show("slow");});ここは、私なら次のように書きます。