我刚刚遇到了我必须做的事情
find_or_create
或者
where(attributes).first_or_create
正如这篇文章所暗示的那样。
但有件事我一直在想
有没有办法确定触发了哪个动作?(因为我想在创建时显示适当的通知)顺便说一句。我正在使用 Ruby 1.9.3
提前致谢。
我刚刚遇到了我必须做的事情
find_or_create
或者
where(attributes).first_or_create
正如这篇文章所暗示的那样。
但有件事我一直在想
有没有办法确定触发了哪个动作?(因为我想在创建时显示适当的通知)顺便说一句。我正在使用 Ruby 1.9.3
提前致谢。
if Model.find_by_attributes(attributes)
flash[:notice] = "record found"
else
Model.create(attributes)
flash[:notice] = "record created"
end
我个人的信念是不要使用find_or_create
,而是分别使用 find 和 create,这样我认为它更清洁和可扩展。
例如,如果您想在创建记录后做更多的事情。而且我坚信一种方法应该做一件事的概念:),
所以我会写这样的东西
高温高压
__method__
如果 ruby 是,则使用1.9.3+
if ['new','include'].include? __method__ then
...
else
...
end