我有一个简单的"Log"模型,它记录调用控制器操作的事实.
该"日志(log)"记录的条目应该只创建一次,并且永远不会更改.另外,我会在数据库中有很多这样的记录.
因此,不需要"UPDATED_AT"列(不需要浪费硬盘上的内存).
我如何告诉Rails只保留"Created_at"列,而不使用"update_at"?
有没有办法将"Log"模型设为只读?
我有一个简单的"Log"模型,它记录调用控制器操作的事实.
该"日志(log)"记录的条目应该只创建一次,并且永远不会更改.另外,我会在数据库中有很多这样的记录.
因此,不需要"UPDATED_AT"列(不需要浪费硬盘上的内存).
我如何告诉Rails只保留"Created_at"列,而不使用"update_at"?
有没有办法将"Log"模型设为只读?
通过将readonly?
方法添加到模型,可以将模型设置为只读.
class Log < ActiveRecord::Base
# Prevent modification of existing records
def readonly?
!new_record?
end
# Prevent objects from being destroyed
def before_destroy
raise ActiveRecord::ReadOnlyRecord
end
end
上面的例子是从here开始采用的.
如果不需要updated_at
列,只需将其从数据库中删除(或不添加)即可.Rails不会更新不存在的内容.