目前在我的应用程序中,我有两个可能的文本框。一个用于本地图像上载,另一个用于远程图像URL。我确保如果用户选择本地图像文件,则“远程图像URL”将被清除,反之亦然,因此只填充一个框。
我正在尝试使用以下方法对它们进行一些验证:validate_image_fields。如何确定在该验证方法中填写哪个框?
new.html.erb
<%= form_for @painting, :html => {:multipart => true} do |f| %>
<p>
<%= f.file_field :image %>
</p>
<p>
<%= f.label :remote_image_url, "or image URL" %><br />
<%= f.text_field :remote_image_url %>
</p>
<p><%= f.submit %></p>
<% end %>
gallery.rb
class List < ActiveRecord::Base
attr_accessible :description, :image, :remote_image_url
validate :validate_image_fields
def validate_minimum_image_size
# how do i determine if it is a remote image or local image?
end
谢谢!
答案 0 :(得分:2)
由于您说'只填充了一个框',您可以识别是否提交了remote_url或是否上传了本地文件。
def validate_image_fields
if remote_image_url.present?
# condition/validations for the image url
elsif image
# condition/validations for uploaded image
else
errors.add(:base, "No image url or local image provided")
end
end
这是你在找什么?我希望我能帮到你。