前提・実現したいこと
Ruby on Railsを用いてフリーマーケットアプリを作成しています
商品出品においてフォームを正しく記入しないとエラーが出てリダイレクトしエラー文を発行してくれる仕組みになっていてテストコードまで完成させうまくテストまでできました。
ここからが本題なのですが、
ここでgem 'rails-i18n'を使用し英語表記のエラー文を日本語表記に変更しました
そしてテストコードも同様に日本語表記に直したのですがそこでエラーが出てしまいうまくいきません
これを今回解決したいです
発生している問題・エラーメッセージ
ターミナル使用時のエラー
1) Item 商品出品 商品出品できない時 itemが空だと出品できない Failure/Error: expect(@item.errors.full_messages).to include('商品の名前を入力してください') expected ["Item can't be blank"] to include "商品の名前を入力してください" # ./spec/models/item_spec.rb:17:in `block (4 levels) in <top (required)>'```
config/application.rbに
『config.i18n.default_locale = :ja』と言う記述も忘れずに行い
ruby
1ja: 2 activerecord: 3 attributes: 4 user: 5 nickname: ニックネーム 6 familyname_kanji: 苗字(漢字) 7 firstname_kanji: 名前(漢字) 8 familyname_katakana: 苗字(カナ) 9 firstname_katakana: 名前(カナ) 10 birthday: 生年月日 11 item: 12 item: 商品の名前 13 image: 画像 14 text: テキスト 15 category_id: カテゴリー 16 status_id: 商品の状態 17 delivery_burden_id: 配送料の負担 18 shipping_origin_id: 発送元の地域 19 arrival_day_id: 発送までの日数 20 price: 価格 21 activemodel: 22 attributes: 23 purchase_house_add: 24 postal_code: 郵便番号 25 shipping_origin_id: 都道府県 26 city: 市区町村 27 address: 番地 28 phone: 電話番号
ja.ymlには上記のように記述しdevise.ja.ymlも忘れず作成しました
item_spec.rb
ruby
1~省略~ 2 3 context '商品出品できない時' do 4 it 'itemが空だと出品できない' do 5 @item.item = nil 6 @item.valid? 7 expect(@item.errors.full_messages).to include('商品の名前を入力してください') 8 end 9 10~省略~
それを踏まえてこのように記述したが先程のターミナルで表示されたエラーが発生してしまいます。
試したこと
自分の記述ミスなども考えエラー文を表示させてからそれをコピペして貼ってみたりしてみたがどうしてもうまくいかなかった、しかし英語表記のエラー文をテストコードで使用するとテストがうまくいきます
日本語表記にしたのですから日本語表記のエラー文でテストができないと意味がありません、ですがどうしてもうまくいかないです。
皆様のお知恵を貸していただけると幸いにございます。
補足情報(FW/ツールのバージョンなど)
rubyバージョン 6.0.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/26 04:27
2020/09/26 15:56
2020/09/26 23:13
2020/09/27 04:56