LoginSignup
0
0

More than 3 years have passed since last update.

railsでアプリケーションを立ち上げたらすること

Posted at

はじめに

「Ruby on Rails 5 速習実践ガイド」のアウトプットを行うための投稿です。
業務でrailsを使用しているため、知識をプライベートでも蓄えようと思い取り組んでます。
今回は、本書のアプリケーションを立ち上げ後の設定関連を投稿します。

目次

  1. slimファイルに変換
  2. bootstrapの導入
  3. scssファイルに変換
  4. エラーメッセージの日本語化
  5. モデルのカラム名を日本語化
  6. 参考文献

slimファイルに変換

Gemfiileの最終行に、以下を追加

gem 'slim-rails'
gem 'html2slim'

記述後ターミナルで以下を実行

bundle install
bundle exec erb2slim app/views/layouts/ -d

2行目のコマンドで、「app/views/layouts/」以下のファイルをerbをもとに、slimファイルを作成してくれます。オプション「-d」は、htmlファイルを削除するオプションです。もし、htmlファイルを残しておきたい場合は、こちらのオプションを付けません。

bootstrapの導入

Gemfiileの最終行に、以下を追加

gem 'bootstrap'

記述後ターミナルで以下を実行

bundle install

scssファイルに変換

app/assets/stylesheets/application.cssを削除し、同じフォルダにapplication.scssを作成し、ファイルに以下の記述を追記します。

app/assets/stylesheets/application.scss
@import 'bootstrap'

エラーメッセージの日本語化

GitHubのrails-I18nリポジトリに翻訳されたものがあるのでそちらを以下のコマンドでダウンロードします。

wget https://raw.githubusercontent.com/svenfuchs/rails-i18n/master/rails/locale/fa.yml -P config/locales/

ダウンロード後、デフォルトで日本語コンテンツを利用するように、locale.rbを作成し、以下の記述を追記します。

config/initializers/locale.rb
Rails.application.config.i18n.default_locale = :ja

モデルのカラム名を日本語化

画面にモデル名を表示するとテーブルのカラム名がそのまま出力されてしまいます。
(例:User.nameのときは、nameと表示されてしまいます)
そこで、ja.ymlにモデル名とカラム名に対応する日本語を割り当てます。なお、インデントがずれるとうまくいかないので、注意です!

config/locales/ja.yml
---
ja:
  activerecord:
    errors:
      messages:
        record_invalid: 'バリデーションに失敗しました: %{errors}'
        restrict_dependent_destroy:
          has_one: "%{record}が存在しているので削除できません"
          has_many: "%{record}が存在しているので削除できません"
    models:
      task: タスク
    attributes:
      task:
        id: ID
        name: 名称
        description: 詳しい説明
        created_at: 登録日時
        updated_at: 更新日時

定義後、ビューでhuman_attribute_nameメソッドを使って日本語表示をします。

Task.human_attribute_name(:name)

この記述で、「名称」と表示されます。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0