i18nにおけるアイテム渡し
アイテム渡しによって翻訳文を動的に変更でき、DRYにすることができる。
# comments_controller.rb def update if @comment.update(comment_params) redirect_to @comment, success: t('defaults.message.updated', item: Comment.model_name.human) else flash.now['danger'] = t('defaults.message.not_updated', item: Comment.model_name.human) render :edit end end
モデル名を動的に変更しているためモデルごとに記述する必要がなくなる
# views/ja.yml ja: default: message: updated: "%{item}を更新しました" not_updated: "%{item}を更新できませんでした"