我有一个小型数据库,并通过Rails页面添加条目.我"摧毁"了其中一个条目,现在我的ID序列正在跳过一个.例如,我现在有42个然后是44个,而不是显而易见的:42,43,44.
我想知道是否有办法通过控制台编辑新对象的ID号.我试过了:
record.id = 43
record.save
Run Code Online (Sandbox Code Playgroud)
和
record = record.new
record.attributes = { :id => 43 }
Run Code Online (Sandbox Code Playgroud)
但两者都不起作用.我相当肯定必须有一个控制台方法,但我似乎无法在Google上找到更具体的内容,我可能错误地阅读了Rails API ...我是否可能必须通过sqlite中的直接SQL来做到这一点?
谢谢
关于动态内存的讨论:"C指针和动态内存简介"
作者说:
像这样的存储块可以有效地用作更灵活的阵列.实际上,这种方法在现实世界的C程序中更为常见.它比"可变大小阵列"更具可预测性和灵活性
他正在讨论的内存块类型是这样的:
const int size = 5;
int * array = calloc(size, sizeof(int));
Run Code Online (Sandbox Code Playgroud)
然后使用另一个指针迭代数组:
int * index = array;
for (i = 0; i < size; i++) {
*index = 1; // or whatever value
index++;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是这个方法比这样的标准变量大小的数组更好吗?:
int array[variable];
Run Code Online (Sandbox Code Playgroud)
或动态:
char name[] = "Nick";
Run Code Online (Sandbox Code Playgroud)
作者并没有真正阐明为什么我应该更喜欢前一种方法.或者更具体地说:它如何更"可预测和灵活"?