Rails アジャイル本 第13章 タスクI:国際化(ロケールの追加)
2010年03月30日
商品テーブル products
にロケールの列 locale
を追加するマイグレーションを作成する。
$ ruby script/generate migration add_locale_to_product locale:string exists db/migrate create db/migrate/20100329045143_add_locale_to_product.rb
マイグレーションを実行する。
$ rake db:migrate (in /Users/hoge/rails_prj/depot) == AddLocaleToProduct: migrating ============================================= -- add_column(:products, :locale, :string) -> 0.0010s == AddLocaleToProduct: migrated (0.0012s) ====================================
ビューを locale
の表示・入力・変更ができるように修正する。
app/views/products/index.html.erb (表示)
<td class="list-description"> <dl> <dt><%=h product.title %></dt> <dd><%=h truncate(product.description.gsub(/<.*?>/, ''), :length => 80) %><br /> (locale: <%=h product.locale %>)</dd> </dl> </td>
app/views/products/show.html.erb (表示)
<p> <b>Locale:</b> <%=h @product.locale %> </p>
app/views/products/new.html.erb (入力)
<p> <%= f.label :locale %><br /> <%= f.text_field :locale %> </p>
app/views/products/edit.html.erb (変更)
<p> <%= f.label :locale %><br /> <%= f.text_field :locale %> </p>
locale
の入力を必須とするよう、バリデーションに追加する。
app/models/product.rb
validates_presence_of :title, :description, :image_url, :locale
ロケールに一致する商品のみを選択するように Product.find_products_for_sale
メソッドを修正する。
def self.find_products_for_sale all(:order => "title", :conditions => { :locale => I18n.locale }) end
Rails 2.3.5 で i18n を使ってメッセージを日本語化する
Rails I18n generators でロケールファイルを生成する
RailsによるアジャイルWebアプリケーション開発
posted with amazlet at 10.03.15
Sam Ruby David Heinemeier Hansson Dave Thomas
オーム社
売り上げランキング: 29946
オーム社
売り上げランキング: 29946