【问题标题】:Errors are displayed twice in rails错误在 rails 中显示两次
【发布时间】:2015-03-13 17:15:13
【问题描述】:

我正在使用carrierwave上传用户模型中的个人资料图片。 如果用户尝试上传任何不是图像的文件,则必须引发错误。但是,错误会在屏幕上显示两次。 请帮忙

用户模型代码 类用户

include CarrierWave::MiniMagick

validates :email, :presence =>true,  :uniqueness => {case_sensitive: false}, :format => { :with=> /([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/, :message => "please enter a valid e-mail" }
validates :name, :presence=>true
validates :password ,:presence =>true, :confirmation=> true #, :length =>{ :minimum=>6, :maximum=>30}, :format=>{:with=>/(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,30}/}

#for the image
mount_uploader :image, ImageUploader

#for the password
has_secure_password

结束

**code ImageUploader **

def scale(width, height)
 image.resize widthxheight
   end

   #Create different versions of your uploaded files:
   version :thumb do
     process :resize_to_fit => [50, 50]
   end

  # Add a white list of extensions which are allowed to be uploaded.

   def extension_white_list
     %w(jpg jpeg gif png)
   end

错误部分代码

<% if object.errors.any?%>
<ul>
<%= object.errors.full_messages.each do |message|%>
    <li><%= message%></li>
    <%end%>
</ul>

<%end%>

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 carrierwave minimagick


    【解决方案1】:

    erb 中,&lt;% .. %&gt; 用于评估其中的 Ruby 代码,&lt;%= .. %&gt; 用于评估以及打印 erb 中的输出。

    在您的以下代码中,您使用了两次&lt;%= ... %&gt;,一次使用&lt;%= message%&gt; 显示错误消息,另一次使用&lt;%= object.errors.full_messages.each do |message|%&gt; 显示相同的错误消息。 这会导致错误消息显示两次。如下修改您的代码,您只需要&lt;%= ... %&gt; 而不是在迭代错误消息集合时显示错误消息。

    <% object.errors.full_messages.each do |message|%> <%# Removed "=" %>
      <li><%= message%></li>
    <%end%>
    

    【讨论】:

      【解决方案2】:

      改变

      <%= object.errors.full_messages.each do |message|%>
      

      <% object.errors.full_messages.each do |message|%>
      

      注意开头的&lt;%,而不是&lt;%=

      &lt;%= 用于打印计算表达式的输出。使用&lt;% 表示只应评估表达式而不打印输出。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-18
        • 1970-01-01
        • 1970-01-01
        • 2018-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多