如何知道一个模型是不是是新的?
Posted
技术标签:
【中文标题】如何知道一个模型是不是是新的?【英文标题】:How to know whether a model is new or not?如何知道一个模型是否是新的? 【发布时间】:2011-03-20 23:47:50 【问题描述】:class Post < ActiveRecord::Base
end
post = Post.new
如何判断'post'是否是未从数据库中提取的新模型?
【问题讨论】:
请使用 4 个空格缩进将文本标记为代码。 【参考方案1】:post.new_record?
【讨论】:
【参考方案2】:如果对象尚未保存,ActiveRecord 的new_record?
方法将返回true
。
【讨论】:
new_record?是链接文档中列出的注释,我相信您的意思是:api.rubyonrails.org/classes/ActiveRecord/Persistence.html @jcarlson 看看我何时发布我的答案,并认为文档可能在此期间发生了变化。【参考方案3】:你可以使用 post.persisted 吗?同样,如果它返回 false 意味着记录在新的
persisted?
【讨论】:
这更直接,因为使用new_record?
,您需要测试false
以了解您的记录是否已保存。在我看来有点落后的逻辑,但每个人都有自己的逻辑!
来自hosh
提供的评论链接:“new_record?
不会检查记录是否已被销毁。”所以我想如果你正在检查记录是否被破坏,这是需要注意的。以上是关于如何知道一个模型是不是是新的?的主要内容,如果未能解决你的问题,请参考以下文章