Mat*_*att 2 ruby-on-rails ruby-on-rails-3
假设我有一个方法,它结合了几个地址字段,如下所示:
def address
"#{street_address}, #{city}, #{state}, #{postal_code}, #{country}"
end
Run Code Online (Sandbox Code Playgroud)
如何扩展方法以允许检查是否有任何字段已更改?基本上,我希望能够做到以下几点:
after_validation :geocode, :if => :address.changed?
Run Code Online (Sandbox Code Playgroud)
我的模型如下:
class Place < ActiveRecord::Base
attr_accessible :street_address, :city, :state, :postal_code, :country, :latitude, :longitude, :geocode_type
geocoded_by :address
after_validation :geocode#, :if => :address.changed?
def address
"#{street_address}, #{city}, #{state}, #{postal_code}, #{country}"
end
end
Run Code Online (Sandbox Code Playgroud)
或者有更好的方法一起完成这一切吗?
def address_changed?
attrs = %w(street_address city state postal_code country)
attrs.any?{|a| send "#{a}_changed?"}
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
606 次 |
| 最近记录: |