目前在我的应用程序中我有两个可能的文本框。一个用于本地镜像上传,另一个用于远程图像 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 %>
画廊.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
谢谢!
最佳答案
既然你说“只填了一个框”,你可以识别是否提交了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
这是您要找的吗?我希望我的回答是正确的。
关于ruby-on-rails - 确定远程图像 URL 或图像是否已上传到 CarrierWave (RoR),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9678867/