【发布时间】:2015-02-07 13:56:37
【问题描述】:
所以,我基本上是想在所需时间后单击确认电子邮件链接时出现的错误消息中显示 Devise 的 confirm_within 时间。
我正在使用 YAML 翻译文件。
插值变量称为devise_confirm_within
我的 YAML 是这样的:
en:
activerecord:
errors:
models:
user:
attributes:
email:
confirmation_period_expired: "some text %{devise_confirm_within}"
通常,我会找到合适的视图,然后将插值变量作为参数传递给translate 或t 方法。像这样:
<p><%= t("devise.mailer.confirmation_instructions.please_click_the_below_link_to_confirm_your_new_email", :devise_confirm_within => distance_of_time_in_words(0, User.confirm_within, :locale => I18n.locale)) %></p>
但是,没有具有confirmation_period_expired 翻译键的视图,所以我不能以同样的方式进行操作。
我有一个观点:
<div class="form-inputs">
<%= f.input :email, :required => true %>
</div>
还有一个用户模型:
validates :email, uniqueness: true
我想将所有翻译文本保留在 YAML 文件中,因此无法在 validates 字段中添加 :message。
那么,我怎样才能将 devise_confirm_within 时间放入该 Confirmation_period_expired 错误消息中?
PS:我将 simple_form gem 用于表单,并使用 dotiw gem 来覆盖默认的 distance_of_time_in_words 方法(这不会影响我遇到的这个问题)。
【问题讨论】:
标签: ruby-on-rails devise simple-form