我想知道如何使用回调为数据库字段赋值,这些字段是从虚拟属性字段中处理的。例如:
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
我一直收到这个错误:
建筑物的未定义方法`houseno':0x0000010488f108
答案 0 :(得分:2)
你试过了吗?
write_attribute(:houseno) = @address.match(/^(\d+-?(\d+)?)\W*(.*)/)[1]
或
self.houseno = @address.match(/^(\d+-?(\d+)?)\W*(.*)/)[1]