我對面,我所要做的的Rails 3如何找出哪些行動被觸發find_or_create
find_or_create
或
where(attributes).first_or_create
爲this post表明發生什麼事了。
但有件事情我一直想知道
有沒有方法來確定哪些行爲被觸發? (因爲我想顯示正確的通知,如果它創建)順便說一句。我正在使用Ruby 1.9.3
在此先感謝。
我對面,我所要做的的Rails 3如何找出哪些行動被觸發find_or_create
find_or_create
或
where(attributes).first_or_create
爲this post表明發生什麼事了。
但有件事情我一直想知道
有沒有方法來確定哪些行爲被觸發? (因爲我想顯示正確的通知,如果它創建)順便說一句。我正在使用Ruby 1.9.3
在此先感謝。
使用__method__
如果紅寶石1.9.3+
if ['new','include'].include? __method__ then
...
else
...
end
if Model.find_by_attributes(attributes)
flash[:notice] = "record found"
else
Model.create(attributes)
flash[:notice] = "record created"
end
謝謝。我想過如果使用其他的,但我有點有興趣找出使用'find_or_create'或'first_or_create'時的動作 – Firyn
我個人認爲是不使用find_or_create
,而是使用查找並單獨創建,這種方式,我認爲它更清潔和可擴展。
舉個例子,如果你想在記錄創建後做更多的事情。我堅信一個方法的概念應該做的一件事情:),
所以我會寫這樣的事情
HTH
我試圖按照Michael的建議使用__method__',但我對ruby和找不到解決方案。我想我可能只是用shweta的答案去。你確實有一點。謝謝 – Firyn
它再次你邁克爾。感謝你的回答,你能給我一些關於如何在控制器中使用它的細節嗎? – Firyn
增加了更多信息。 –
感謝邁克爾,現在看起來shweta的方式更短。但我會記住這一點 – Firyn