読者です 読者をやめる 読者になる 読者になる

牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

『5分でRails3アプリ』をやってみた、それから『i18n_generators』で日本語表示も

Rails Ruby

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: "メモ"
terminal
rails s

WEBブラウザで日本語表示になったか確認


バリデーション

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 %>

おしまい
と思ったけど、見た目があれなんで