【问题标题】:Changing Error Message in Rails Model更改 Rails 模型中的错误消息
【发布时间】:2012-05-24 20:39:56
【问题描述】:

我有一个带有模型验证的 Rails (3.1) 应用程序,该应用程序在触发时会将模型和字段名称放在消息之前,例如:

个人资料图片 个人资料图片内容类型 个人资料图片只允许使用 jpeg、gif 和 png 文件

有没有办法避免这种情况,所以上面写着:

头像只允许使用 jpeg、gif 和 png 文件

model.rb 验证:
validates_attachment_content_type :profile_image,
  :content_type => ['image/jpeg', 'image/png', 'image/gif'],
  :message      => "Only jpeg, gif and png files are allowed for profile pictures"

错误在我的布局中显示为此代码的一部分:

<% if object.errors.any? %>
  <div class="alert alert-message error" data-alert="alert">
    <a class="close" data-dismiss="alert">×</a>
    <ul>
      <% object.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
    </ul>
  </div>
<% end %>

【问题讨论】:

  • 请向我们展示显示此错误的视图代码。

标签: ruby-on-rails-3 paperclip paperclip-validation


【解决方案1】:

我的直觉是 msg 实际上不是消息,而是整个错误哈希,因此调用 &lt;%= msg %&gt; 实际上将整个哈希转换为字符串,包括键。您可以通过&lt;%= msg.class %&gt; 确认这一点。

假设您发布的视图代码是部分代码,那么查看包含该部分代码的视图会很有帮助。如果它不是部分的,那么查看周围的代码会很有用。

【讨论】:

  • 对不起,我现在添加了整个部分
  • 哦,所以你在flash 中传递了错误。它是如何在你的控制器中设置的?你确认msg是什么对象了吗? msg.inspect 也很有用。
  • 抱歉,我正在查看不正确的部分(修正了我的描述)。当我输入您提到的命令时,我发现了。有了这些,它返回: ActiveModel::Errors 和 #<:errors:0x813c960>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-02
  • 1970-01-01
  • 2023-01-07
  • 1970-01-01
  • 2020-12-01
  • 2010-12-14
  • 1970-01-01
相关资源
最近更新 更多