ruby-on-rails - 确定远程图像 URL 或图像是否已上传到 CarrierWave (RoR)

标签 ruby-on-rails carrierwave

目前在我的应用程序中我有两个可能的文本框。一个用于本地镜像上传,另一个用于远程图像 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/

相关文章:

ruby-on-rails - CarrierWave 抛出 NoMethodError - `new' :String: 的未定义方法 "file"

ruby-on-rails - 在载波中重新处理图像

ruby-on-rails - 设计:用户注销后如何使用 remember_me cookie?

ruby-on-rails - 如何将 Cloudfront 与基本身份验证一起使用?

jquery - 响应式网格布局 rails

ruby-on-rails - 参数错误 : Unknown migration version "5.2"; expected one of "4.2", "5.0", "5.1"

ruby-on-rails - 使用延迟作业时自动定位图像

ruby-on-rails - Rails, Controller 中条件查询之间的简单数字

ruby-on-rails - Rails 缺少模板

ruby-on-rails - NameError: 未初始化的常量 CarrierWave::Storage::Fog