0

我正在为 Ruby on Rails 3 使用“回形针”gem,我想用这种方法处理自定义存在验证:“如果文件路径值(如“ /Users/Desktop/image.gif”或“ C:/Users/Desktop/image.gif”之类的字符串)未在“file_field”中输入' 对该字段抛出错误”。

我认为这样做有问题,因为 RoR 处理“file_field”的方式与其他字段不同。

注意:我不想使用 'paperclip' 中的 'validates_attachment_presence' 方法。

这是做我想做的事的好方法吗?如果是这样,该怎么做?


我在我的控制器中尝试了代码:

if params[:user][:avatar].blank?  
  # I also used 
  # - 'nil?' instead of 'blank'
  # - !params[:user][:avatar]
  @user.errors.add( :avatar, "can not be blank" )
end

但是,如果我尝试使用空文件(零/空白路径值)提交表单,我会得到一个

NoMethodError
你有一个 nil 对象,但你没想到它!
您可能期望 ActiveRecord::Base 的实例。
评估 nil 时发生错误。[]

4

1 回答 1

1

只是一个想法:您也可以使用 Javascript 来启用上传按钮,直到首先在文本字段中输入内容。这避免了不必要的往返服务器的需要。您可能想要验证您的 User.rb 模型是否使用 attr_accessible,该字段是否存在于该行中。

于 2011-01-19T23:44:11.493 回答