如何使用ActiveRecord回调在保存前分配字段值?
我想知道如何使用回调为数据库字段赋值,这些字段是在虚拟属性字段之外处理的。示例:如何使用ActiveRecord回调在保存前分配字段值?,activerecord,callback,ruby-on-rails-3,mongoid,Activerecord,Callback,Ruby On Rails 3,Mongoid,我想知道如何使用回调为数据库字段赋值,这些字段是在虚拟属性字段之外处理的。示例: field :houseno, :type => String field :street, :type => String attr_accessor :address 我的尝试似乎没有成功。以下是我所拥有的: before_validation :assign_fields def assign_fields if @address @houseno
field :houseno, :type => String
field :street, :type => String
attr_accessor :address
我的尝试似乎没有成功。以下是我所拥有的:
before_validation :assign_fields
def assign_fields
if @address
@houseno = @address.match(/^(\d+-?(\d+)?)\W*(.*)/)[1]
@street = @address.match(/^(\d+-?(\d+)?)\W*(.*)/)[3]
end
end
我一直在犯这样的错误:
建筑物的未定义方法“房屋编号”:0x000010488F108
您是否尝试过:
write_属性(:houseno)=@address.match(/^(\d+-?(\d+))\W*(.*)/)[1]
或
self.houseno=@address.match(/^(\d+-?(\d+))\W*(.*)/)[1]
我没有尝试第一种方法,但第二种方法有效。谢谢