我可以使用某些activeRecord模型的.save方法并为其添加功能吗?我还想使用该函数中保存的项目的一些属性
我能做点什么吗?
class Item < ActiveRecord::Base
def self.save
<added stuff for save>
<including some_other_id_from_this_item>
end
end
还是会破坏事情?我如何实际访问this_item.the_column_i_need?
答案 0 :(得分:5)
您应该使用ActiveRecords callbacks来扩展保存行为。
使用before_save挂钩,您可以在保存记录之前访问数据,例如更改输入电子邮件的情况,您可以执行类似
的操作class User < ActiveRecord::Base
before_save :downcase_email
def downcase_email
email.downcase!
end
end
答案 1 :(得分:0)
使用回调 aftet_save 代替。如果您阅读,则只需属性名称即可访问任何列;如果需要更改 self.db_column_name ,则可以访问