2

モデルで未定義のメソッドを取得していますが、それがあると信じています。

class Business < ActiveRecord::Base
  attr_accessible :user_id, :name, :city, :state, :zip, :street, :latitude, :longitude

  def new_address
    [street, city, state, zip].join(', ')
  end  
  geocoded_by :new_address
  after_validation :geocode, :if => :new_address_changed?

end

未定義のメソッド エラーが表示されますnew_address_changed?これは間違っていますか?

4

2 に答える 2

3

*_changed? methods are available only for active record attributes and not for user defined methods. For you, street_changed? etc will work.

The best way out is to define another method like so:

def address_changed?
  street_changed? || city_changed? || state_changed? || zip_changed?
end
于 2013-10-13T06:33:40.670 に答える
2

属性ではないためmethod、独自に定義できます。new_addressactive_record

def new_address_changed?
  street_changed? || city_changed? || state_changed? || zip_changed?
end
于 2013-10-13T06:36:02.533 に答える