我有一个数据库表与一个特定的字段,它应该是不可能更新一旦它已被插入到数据库。我如何告诉我的模型,它不应该允许更新某个字段?如何在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. 如何将数据导入只读数据表字段?
- 6. 如何在SQL数据库中使用行作为字段
- 7. 在rails上更新数据库字段
- 8. 如何在Windows Phone中使用只读数据库?
- 9. 如何在asp.net中使用Eval从数据库中读取字段?
- 10. 如何禁用字段或在Drupal 7中使其只读只读
- 11. 如何使用FileHelpers库从csv中只读取一定数量的字段?
- 12. ASP.NET只读数据库中的数据
- 13. 保存表单字段为sql数据库 - 只保存数字?
- 14. 根据其他字段的值在Django Admin中只读字段
- 15. 如何使用Rails在ExtJs中将文本字段与数据库连接
- 16. 只读数据库连接字符串
- 17. 访问数据库打开为只读
- 18. 数据库表设计为只读值
- 19. 在rails中切换数据库阶段
- 20. Rails没有为数据库中的文本字段设置NULL?
- 21. Rails/Activerecord数据库字段时区
- 22. Rails无法写入数据库字段
- 23. Rails 3.2 ActiveRecord数据库字段问题
- 24. 如何有条件地使DetailsView字段为只读?
- 25. Rails:在postgresql数据库中搜索数组json字段
- 26. 如何在数据库中使用整数作为货币字段
- 27. 如何在vba中打开一个只读数据库?
- 28. 只读数据库查询?
- 29. Inno setup使sqlite3数据库只读
- 30. 如何将数据库生成的列值定义为JPA和Hibernate中的只读字段?
这是对您的问题的正确答案,但对您的实际问题的“正确”解决方案有点不同......请参阅有关其他问题的评论。 – averell 2011-02-14 11:13:04
否则+1回答。 – averell 2011-02-14 14:10:10