我有一個數據庫表與一個特定的字段,它應該是不可能更新一旦它已被插入到數據庫。我如何告訴我的模型,它不應該允許更新某個字段?如何在Rails中使數據庫字段爲只讀?
回答
你想用attr_readonly
:爲只讀上市
屬性將被用來創建一個新的記錄,但更新操作會忽略這些字段。
class Customer < ActiveRecord::Base
attr_readonly :your_field_name
end
這場總是和由定義「正確」(即準確的現實表示)在插入時?
沒有用戶在第一次進入該字段時(以及在您的方案中:只有)時間?
實際上用戶根本沒有輸入,它由控制器設置。我想防止的是有人用修改後的請求修改它。 – fresskoma 2009-10-09 12:15:25
在這種情況下,您根本不想亂動「只讀」字段。你想要做的是在模型中使用'attr_protected'語句來防止字段被大量更新改變。甚至更好:使用'attr_accessible'使所有選定的字段可用於批量更新。 – averell 2011-02-14 14:08:18
要在這裏:我認爲attr_readonly正確的用例是當改變該字段會破壞你的數據完整性。我有一個字段:valid_at,並且永遠不應該改變這個字段,因爲這意味着核心算法會出現一些錯誤。如果發生這種情況,這一切都在甲板上。所有數據可能不好。因此,我絕不需要改變它,而是寧願防止它被其他代碼中的錯誤所改變。如果它曾經試圖改變,我想非常大聲地炸燬。 – Houen 2016-04-13 06:58:48
- 1. Rails Cocoon只讀字段
- 2. Rails模型:如何讓Rails模型中的字段只讀?
- 3. 如何設置只讀在rails 3.1.0視圖中的字段?
- 4. 如何使數據窗口對象中的計算字段爲只讀
- 5. 使用rails轉換數據庫字段
- 6. 如何將數據導入只讀數據表字段?
- 7. 如何在SQL數據庫中使用行作爲字段
- 8. SQLite3數據庫表中的只讀字段?
- 9. 在rails上更新數據庫字段
- 10. 如何在Windows Phone中使用只讀數據庫?
- 11. 如何使DNN文本字段只讀
- 12. 如何在asp.net中使用Eval從數據庫中讀取字段?
- 13. 在C#WebBrowser中使用只讀字段
- 14. 如何禁用字段或在Drupal 7中使其只讀只讀
- 15. 如何使用FileHelpers庫從csv中只讀取一定數量的字段?
- 16. ASP.NET只讀數據庫中的數據
- 17. 如何使用Rails在ExtJs中將文本字段與數據庫連接
- 18. 如何使用rails在一個數據庫列中保存多個字段
- 19. 保存表單字段爲sql數據庫 - 只保存數字?
- 20. 根據其他字段的值在Django Admin中只讀字段
- 21. 只讀數據庫連接字符串
- 22. 如何使字段只讀在PHP中,Zend框架工作
- 23. 我如何使文本字段只讀在grails中?
- 24. 使用Rspec/Rails模擬只讀數據庫
- 25. 我如何驗證只讀字段到數據模型
- 26. 訪問數據庫打開爲只讀
- 27. 數據庫表設計爲只讀值
- 28. Rails:空字段正在數據庫中創建字符串'undefined'
- 29. 如何在數據庫字段(SQL)
- 30. 在rails中切換數據庫階段
這是對您的問題的正確答案,但對您的實際問題的「正確」解決方案有點不同......請參閱有關其他問題的評論。 – averell 2011-02-14 11:13:04
否則+1回答。 – averell 2011-02-14 14:10:10