我想改變數據,然後在使用應用程序的新建/創建功能時將其保存到數據庫中。Ruby on Rails:如何在保存到數據庫之前執行一個函數?
回答
您應該使用主動回調,如其他兩個答案所述。 * before_create *絕對是你正在尋找的那個。總是在模型中做這種邏輯,而不是在控制器中。 Rails的咒語(衆多之一)是「瘦控制器,胖模型」,可以更輕鬆地重用代碼。
您可以檢查活動回調文件:
http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
而且,這裏是你想達到什麼樣的一個例子
class MyClass < ActiveRecord::Base
before_create :alter_my_data
def alter_my_data
# any manipulation you want to do here before saving
end
end
也感謝鏈接(但他們應該修復tpyo那裏,一些文本部分難以閱讀,因爲文字大小太小) –
我同意! ctrl + mousewheel up upsize text ;-) –
before_create :myfunction
def myfunction
# Edit data
end
應該這樣做。
謝謝,整個Ruby on Rails文檔非常龐大,但腳本本身的Ruby腳本很容易=) –
class User < ActiveRecord::Base
before_create :validate_username
def validate_username
raise "blank error" if username.blank?
#....your code
end
end
在驗證方法中引發異常?真? –
你的問題上面已經回答了,但我真的推薦你看看官方的Ruby on Rails指南:
http://guides.rubyonrails.org/
這些指南很容易理解和涵蓋Rails的許多部分。您的問題在「活動記錄驗證和回調」部分得到解答。
我檢查了他們,但你是否第一次使用ruby在rails上搭建腳手架,並且在那裏有一個紅寶石的huuuuuuge文檔(在rails上),並且沒有計劃下一步該做什麼,而你有在幾天內從頭開始寫一個完整的應用程序?我應該如何知道這是在有效的記錄驗證和回叫?我已經知道活躍的記錄和所有其他的東西,但不知道在哪裏搜索,尋找什麼以及如何去做。 –
- 1. Ruby on Rails:在保存到數據庫之前總結文件中的數據
- 2. Ruby on Rails - 我可以在保存之前修改數據嗎?
- 3. Ruby on Rails - 如何將當前日期時間保存到數據庫?
- 4. 使用Ruby On Rails添加數字並保存到數據庫
- 5. 在任何函數執行之前執行一個函數
- 6. 如何確保函數在數據通過angular2之前執行?
- 7. 在保存到Rails數據庫之前修改表單參數
- 8. Ruby on Rails - 複選框不保存到數據庫?
- 9. 表單字段不保存到數據庫 - Ruby on Rails的
- 10. Ruby on Rails不保存崗位數據
- 11. 如何在保存到數據庫之前合併數據?
- 12. Ruby on Rails的 - 存儲PARAMS數據庫
- 13. Ruby On Rails數據庫
- 14. Ruby on Rails + Filemaker數據庫
- 15. Ruby on Rails:在數據庫中保存R plot
- 16. 如何執行一個函數只有在ruby on rails上保存「remote => true」的窗體的父類?
- 17. 如何確保循環保存數據庫在Mocha完成之前執行?
- 18. 如何在Ruby on Rails 3.2.8上的LocalStorage上保存數據?
- 19. Rails在保存到數據庫之前彈出窗口
- 20. 執行在Ruby中一個SQL文件on Rails的導入數據庫
- 21. 保存到數據庫後,但在此之前在Ruby中檢查HTTP請求on Rails的
- 22. Ruby on Rails根據發佈數據在數據庫中保存記錄
- 23. Ruby on Rails - 多個數據庫連接
- 24. 將數據存儲在沒有數據庫的Ruby on Rails中
- 25. 保存Ruby on Rails
- 26. Ruby on rails,將數據保存在兩個表中
- 27. Rails - 保存到數據庫之前更新嵌套屬性
- 28. Ruby on Rails的:保存搜索查詢數據庫中的
- 29. Ruby on Rails模型保存rest_client沒有本地數據庫
- 30. Ruby on Rails:用一個數據庫條目保存許多字段類型
你想做它應用程序範圍內還是模型特定的? – Bohdan
應該只是在模型中,就像在答案 –