個人アプリ開発 バリデーション・エラーメッセージ設定

コメント機能

文字数制限のバリデーションを追加し、投稿に失敗した場合はアラートを出すようにしました。

f:id:kobegoro:20200829132903p:plain

モデル編集
ーーー追記ーーー
validates :title, presence: true, length: { maximum: 20 }
validates :text, presence: true, length: { maximum: 140 }
コントローラ編集
 def create
    @comment = Comment.create(comment_params)
    if @comment.save
      redirect_to group_path(@comment.group.id)
    else
      ーーー追記ーーー
      flash[:alert] = "コメントの投稿に失敗しました。入力内容をご確認ください。"
      redirect_to group_path(@comment.group.id)
    end
end
ビュー編集
flash.each do |message_type, message|
  .alert
    = message
truncate

ビューを編集している時にコメントのテキストに文字を目一杯入力した場合、見た目が悪くなることに気がつきました。
そしてここで便利なヘルパーメソッドを発見。
いい感じに修正ができました。

f:id:kobegoro:20200829142603p:plain

= truncate(group.comments[-1].text, :length => 90)

90文字を超える文字を"..."に置き換えてくれます

group.comments[-1].text
対象記事の最新コメント(テキスト)を取り出す

アカウント機能

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

config/application.rb

module Pictweet
 class Application < Rails::Application
   # Initialize configuration defaults for originally generated Rails version.
   config.load_defaults 6.0


   # 日本語の言語設定
   config.i18n.default_locale = :ja
  # 省略
 end
end

gemインストール

gem ‘rails-i18n'

config/locales/devise.en.ymlに以下URLのコードをコピペ
https://github.com/tigrish/devise-i18n/blob/master/rails/locales/ja.yml

config/locales内にja.ymlを追加し下記を追加

ja:
  activerecord:
    models:
      user: ユーザー
    attributes:
      user:
        name: 名前
        email: メールアドレス