Tom*_*man 13 activerecord ruby-on-rails
刷新给定模型属性的最佳方法是什么?
即,功能上,我想要这个:
post.body = Post.find(post.id).body
Run Code Online (Sandbox Code Playgroud)
语法更好.也许
post.reload_body!
Run Code Online (Sandbox Code Playgroud)
编辑:我只是想重装单一属性(不是所有属性的一次)
zet*_*tic 11
打败我为什么要做这样的事情,但是:
def reload_attribute(attr)
value = self.class.where(:id=>id).select(attr).first[attr]
self[attr] = value
end
Run Code Online (Sandbox Code Playgroud)
这会发出一个SELECT
只检索一列并将其值赋给当前模型实例中的属性的问题.打电话(例如):
post = Post.find(1)
post.reload_attribute(:body)
Run Code Online (Sandbox Code Playgroud)
真的,你应该去post.reload
(doc).除非你有非常宽的列,否则会产生一些性能成本SELECT *
归档时间: |
|
查看次数: |
5734 次 |
最近记录: |