错误在 rails 中显示两次
Errors are displayed twice in rails
我正在使用carrierwave 上传用户模型中的个人资料图片。
如果用户尝试上传任何非图像文件,则必须引发错误。但是错误在屏幕上显示两次。
请帮助
用户模型代码
class 用户 < ActiveRecord::Base
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
结束
**代码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%>
改变
<%= object.errors.full_messages.each do |message|%>
到
<% object.errors.full_messages.each do |message|%>
注意开头的 <%
而不是 <%=
<%=
用于打印求值表达式的输出。使用 <%
表示只对表达式求值,不打印输出。
在erb
中,<% .. %>
用于计算其中的Ruby代码,<%= .. %>
用于计算并在erb中打印输出。
在下面的代码中,您使用了 <%= ... %>
两次,一次使用 <%= message%>
显示错误消息,另一次使用 <%= object.errors.full_messages.each do |message|%>
显示相同的错误消息。
这导致错误消息显示两次。如下修改您的代码,您只需要 <%= ... %>
在显示错误消息时而不是在遍历错误消息集合时。
<% object.errors.full_messages.each do |message|%> <%# Removed "=" %>
<li><%= message%></li>
<%end%>
我正在使用carrierwave 上传用户模型中的个人资料图片。 如果用户尝试上传任何非图像文件,则必须引发错误。但是错误在屏幕上显示两次。 请帮助
用户模型代码 class 用户 < ActiveRecord::Base
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
结束
**代码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%>
改变
<%= object.errors.full_messages.each do |message|%>
到
<% object.errors.full_messages.each do |message|%>
注意开头的 <%
而不是 <%=
<%=
用于打印求值表达式的输出。使用 <%
表示只对表达式求值,不打印输出。
在erb
中,<% .. %>
用于计算其中的Ruby代码,<%= .. %>
用于计算并在erb中打印输出。
在下面的代码中,您使用了 <%= ... %>
两次,一次使用 <%= message%>
显示错误消息,另一次使用 <%= object.errors.full_messages.each do |message|%>
显示相同的错误消息。
这导致错误消息显示两次。如下修改您的代码,您只需要 <%= ... %>
在显示错误消息时而不是在遍历错误消息集合时。
<% object.errors.full_messages.each do |message|%> <%# Removed "=" %>
<li><%= message%></li>
<%end%>