バリデーションのメッセージを日本語に変換したいのですが、できません。
バリデーションを設定してるのは、二個あり。
Userモデル
Postモデルです。
Userの方は、日本語に変換されるのですが、Postの方は、なぜか変換されません。
一度コードを見てもらいたいです
※config.i18n.default_locale = :ja 記載あり
※gem 'rails-i18n'インストール済み
出力結果は
Shopnameを入力してください
Shopaddressを入力してください
Shopcontentを入力してください
のようにカラム名がそのまま出力されます
実現したいことは、ja.ymlに記載されてるように
お店の名前を教えてください
お店の住所を入力してください
どんなお店かを入力してください
というふうに表示させたいです
Post.rb
class Post < ApplicationRecord belongs_to :user validates :shopname, presence: true, length: { maximum: 20 } validates :shopaddress, presence: true, length: { maximum: 30 } validates :shopcontent, presence: true, length: { maximum: 300 } has_many :comments end
バリデーションメッセージを表示させたい部分(index.html.erb)
<%= form_with(model: @post, local: true) do |f| %> <% if @post.errors.any? %> <% @post.errors.full_messages.each do |message| %> <div class = "alert alert-success" role="alert"><%= message %></div> <% end %> <% end %> <div class = "row"> <div class="col"> <%= f.label :shopname, 'お店の名前' %> <%= f.text_area :shopname, class: 'form-control', placeholder: "お店の名前" %> </div> <div class="col"> <%= f.label :shopaddress, 'お店の住所'%> <%= f.text_area :shopaddress, class: 'form-control', placeholder: "できるだけ詳しく" %> </div> </div> <%= f.label :shopcontent, '詳しく教えてください' %> <%= f.text_area :shopcontent, class: 'form-control', rows: "10", placeholder: "待ち時間や店員さんの対応" %></br> <%= f.submit '投稿',class: 'btn btn-success btn-block' %>
postcontroller
def new @post = Post.new end def create @post = Post.new(post_params) @post.user_id = current_user.id if @post.save redirect_to posts_path else @q = Post.ransack(params[:q]) @posts = Post.all.page(params[:page]).per(6).order("id DESC") render action: :index end end
application.rb
module UberEvaluation class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. config.load_defaults 5.2 # Settings in config/environments/* take precedence over those specified here. # Application configuration can go into files in config/initializers # -- all .rb files in that directory are automatically loaded after loading # the framework and any gems in your application. # Don't generate system test files. config.generators.system_tests = nil config.i18n.default_locale = :ja end end
ja.yml
ja: views: pagination: first: <i class="fas fa-angle-double-left"></i> last: <i class="fas fa-angle-double-right"></i> previous: <i class="fas fa-angle-left"></i> next: <i class="fas fa-angle-right"></i> truncate: "..." ja: activerecord: models: post: attributes: post: shopaddress: お店の住所 shopcontent: どんなお店か shopname: お店の名前 ja: activerecord: models: user: attributes: user: name: ユーザーネーム password: パスワード password_confirmation: 確認用パスワード
よろしくお願いします
回答2件
あなたの回答
tips
プレビュー