Rails检查数组

时间:2016-06-10 01:42:46

标签: ruby-on-rails ruby

我知道这很简单,但我已经尝试了几种方法而且无法让它发挥作用。

我的模型中有一系列邮政编码。使用之前的保存回调我想检查当前送货地址中的邮政编码是否与数组中的任何邮政编码匹配。

模型

class ShippingAddress < ActiveRecord::Base
  belongs_to :user
  before_save :set_green


  def green_zip_codes
    ['33432','33333']
  end


  def set_green
    if green_zip_codes.include? self.zipcode
      self[:green] = true 
    end  
  end 


end

如果我改变了这个:

  def set_green
    if green_zip_codes.include? self.zipcode
      self[:green] = true 
    end  
  end

对此:

  def set_green
    if green_zip_codes.include?("33333")
      self[:green] = true 
    end  
  end

它有效,但很明显,我想查看当前条目的邮政编码。

EDITED 这就是我正在尝试做的方式:

  def set_green
    if green_zip_codes.include?(self.zipcode.to_s)
      self[:green] = true
    end
  end 

1 个答案:

答案 0 :(得分:0)

如果green是模型的属性,则set_green方法应为:

def set_green
  if green_zip_codes.include?("33333")
    self.green = true 
  end
  true # to ensure true is returned to the before_save callback even when the zip code does not match.
end