我刚刚遇到了我必须做的事情
find_or_create
或
where(attributes).first_or_create
如this post所示。
但是我一直想知道
有没有办法确定触发了哪个动作? (因为我想在显示它时显示正确的通知)BTW。我正在使用Ruby 1.9.3
提前致谢。
答案 0 :(得分:1)
if Model.find_by_attributes(attributes)
flash[:notice] = "record found"
else
Model.create(attributes)
flash[:notice] = "record created"
end
答案 1 :(得分:1)
我个人认为不是使用find_or_create
,而是单独使用查找和创建,这样我认为它更清洁和可扩展。
例如,如果您想在创建记录后再做一些事情。而且我坚信一种方法的概念应该做一件事:),
所以我会写这样的东西
HTH
答案 2 :(得分:0)
如果ruby为__method__
1.9.3+
if ['new','include'].include? __method__ then
...
else
...
end