Youtubeにアップされてた『5 Minutes Rails3 Application 』をやってみた。
『i18n_generators』が便利そうなのでメモがてら。
(環境: MacOSX10.7, ruby1.9.2, rails3.1.3)
Railsでプロジェクト作成
terminal
rails new bookkeeping cd bookkeeping/ rails g scaffold payment payment_on:date title:string money:integer memo:text rake db:migrate rails s
WEBブラウザで確認
『i18n_generators』で日本語表示
/GemFile
GemFileに以下追加
gem 'i18n_generators'
terminal
Ctrl-C to shutdown server
bundle
rails g i18n ja
Overwrite するか訊いてくるので『Y』と入力。
『/config/locales/translation_ja.yml』が作られる。
/config/locales/translation_ja.yml
動画に無いけど、下記のように書き換えないと動画のみたいに日本語表示されないよね?
ja: activerecord: models: payment: payment #g attributes: payment: # payment_on: payment_on #g # title: title #g # money: money #g # memo: memo #g payment_on: "お支払いについて" title: "タイトル" money: "マネー" memo: "メモ"
バリデーション
app/models/payment.rb
class Payment < ActiveRecord::Base validates :title, :money, presence: true end
リスト表示を変更
/app/controllers/payments_controller.rb
下記変更
def index # @payments = Payment.all @payments = Set.new(Payment.all).classify{ |p| p.payment_on }
/app/views/payments/index.html.erb
<h1>Listing payments</h1> <table border=1> <tr> <th>Payment on</th> <th>Title</th> <th>Money</th> <th>Memo</th> <th></th> <th></th> <th></th> </tr> <% (Time.now.beginning_of_month.to_date..Time.now.end_of_month.to_date).each do |day| %> <% unless @payments[day] %> <tr> <td><%= day %></td> </tr> <% else %> <% @payments[day].each do |payment| %> <tr> <td><%= payment.payment_on %></td> <td><%= payment.title %></td> <td><%= payment.money %></td> <td><%= payment.memo %></td> <td><%= link_to 'Show', payment %></td> <td><%= link_to 'Edit', edit_payment_path(payment) %></td> <td><%= link_to 'Destroy', payment, confirm: 'Are you sure?', method: :delete %></td> </tr> <% end %> <% end %> <% end %> </table> <br /> <%= link_to 'New Payment', new_payment_path %>
おしまい
と思ったけど、見た目があれなんで