我知道这很简单,但我已经尝试了几种方法而且无法让它发挥作用。
我的模型中有一系列邮政编码。使用之前的保存回调我想检查当前送货地址中的邮政编码是否与数组中的任何邮政编码匹配。
模型
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
答案 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