もふもふ技術部

Rails3 区分値を扱う


前回、TOP画面の性別の表示が思っていた通りになっていませんでした。
今回、その表示を「男」or「女」という表示になるように修正を試みます。

方法は色々あるようですが、今回はActiveHashを使いました。

性別情報が書かれているのEnum型のデータを個別に用意しておき、
DBからデータを引っ張ってきたときに、性別情報とリンクさせて
日本誤表示にするというイメージです。

参考にしたところはここです。

ActiveHashのインストール

Gemfileの末尾に

を追記し、bundle installします。

性別情報の定義

性別情報のデータを記述しておくためのファイルを新規に作成し、以下のように記述します。

モデルの作成

性別情報用のモデルを作成します。

infoモデルと性別情報モデルの関連付け

belongs_toを使ってモデル同士を繋ぎます。
:sex_typeシンボル部分は対象のモデル名(小文字、アンダーバー表記)です。

attr_accessibleで、「:sex」を「:sex_type_id」に変更しています。
「”関連付けるモデル名” + _id」にする必要があります。
belongs_toで関連付けた時に、sex_type_idの値とsex_typeのモデルのidが
紐づいているようです。(違ってたらすみません…)
ハマりました…。
さらに、これに合わせてDBのカラム名も変更します。

ビューの変更

ビューの修正を行います。
例としてshowの修正を。

あとは、sexにしていたところをsex_typ_idに変えてあげれば、編集画面は…
sex_type1
この通り。
さらにTOP画面も…
sex_type2
このとお…あれ?うまくいっていません…。

次の課題にします。。。

The following two tabs change content below.
根本 大幹

根本 大幹

社会人2年目。 今までブログ書いたことありません! 勉強は明日からがんばる。
根本 大幹

最新記事 by 根本 大幹 (全て見る)