Ruby on rails 3 使用MD5摘要保存之前的Rails模型

Ruby on rails 3 使用MD5摘要保存之前的Rails模型,ruby-on-rails-3,model,before-save,Ruby On Rails 3,Model,Before Save,我有一个模型,一些记录必须在用户输入后自动填写 然后我在保存之前使用了回调,但是记录不会被存储 这是我的模型: before_save :create_relation_plus_md5 has_many :bridges attr_accessible :id, :admin_user_id, :md5, :url, :name, :cBox validates_presence_of :name validates_uniqueness_of :name def create_rel

我有一个模型,一些记录必须在用户输入后自动填写

然后我在保存之前使用了
回调,但是记录不会被存储

这是我的模型:

before_save :create_relation_plus_md5
has_many :bridges
attr_accessible :id, :admin_user_id, :md5, :url, :name, :cBox

validates_presence_of :name
validates_uniqueness_of :name



def create_relation_plus_md5
    baseUrl = "http://www.mysite.com/?id="
    digest = Digest::MD5.hexdigest("#{name}#{id}#{someOtherData}")
    puts "digest : #{digest}"
    md5 = digest
    url = "#{baseUrl}#{digest}"
    # + create relations
end
md5和url将不会被存储,我想我错过了一些东西。也许我必须在方法中显式调用
save


我可以在保存后使用
进行变通,并手动回调模型,但这自然会创建一个无限循环…

如果要调用setter方法,需要显式引用self。否则,将分配给局部变量

md5 = "foo" # local variable
self.md5 = "foo" # method call, value will be stored in the instance.

如果要调用setter方法,则需要显式引用self。否则,将分配给局部变量

md5 = "foo" # local variable
self.md5 = "foo" # method call, value will be stored in the instance.

谢谢你的回答,很有效!我知道我遗漏了什么;)谢谢你的回答,很有效!我知道我遗漏了什么;)