База условий проверки активной записи Rails - PullRequest
0 голосов
/ 03 октября 2011
class Material < ActiveRecord::Base
  belongs_to :material_type
  belongs_to :product_review
  validates :url, :presence => true, :if => :url_presence?
  validates :video, :presence => true, :if => :video_presence?
  def url_presence?
    if !self.title.blank? and self.material_type.title.eql? :url
      true
    end
  end

  def video_presence?
    if !self.title.blank? and self.material_type.title.eql? :video
      true
    end
  end


  has_attached_file :video,
                    :url => "/system/video/:id/:attachment/:style/:basename.:extension",
                    :path => ":rails_root/public/system/video/:id/:attachment/:style/:basename.:extension",
                    :default_url => "/image/video.png"
end

Я предполагаю, что если он найдет заполнение полей Заголовка, а материал_типа является URL-адресом, чем он выполняет проверку для проверки наличия полей URL-адреса, но это не полезно

1 Ответ

1 голос
/ 03 октября 2011

Я думаю, вам нужно сравнивать строки, а не символы.

validates :url, :presence => true, :if => :url_present?
validates :video, :presence => true, :if => :video_present?

def url_present?
  self.title.present? and self.material_type.title == "url"
end

def video_present?
  self.title.present? and self.material_type.title == "video"
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...