0
我的应用程序需要自动将一个数字(从1001开始)分配给某种类型的记录(想像一个检查寄存器)。该数字应显示为输入屏幕的一部分,但当然不可修改。如何分配我自己的自动递增字段?
我如何在Rails中做到这一点?
注意:这与id字段无关。
我的应用程序需要自动将一个数字(从1001开始)分配给某种类型的记录(想像一个检查寄存器)。该数字应显示为输入屏幕的一部分,但当然不可修改。如何分配我自己的自动递增字段?
我如何在Rails中做到这一点?
注意:这与id字段无关。
据我所知,您只能将一个auto_increment
列设置为一个表格,并且需要将其定义为primary key
。所以这不是您的选择,因为id
字段是您的表的primary key
。
所以你需要做这个应用程序内部。只是一个integer
列添加到表:
add_column :table_name, :column_name, :integer
然后添加到您的模型的方法是计算出在创建的最后一个数据集的列的值。
def self.last_<column_name>_used
return last.<column_name> unless last.nil?
return 1000
end
def self.next_<column_name>_to_use
last_<column_name>_used+1
end
然后你可以用filter
到全自动分配Model.next__to_use到应incremended值,你也可以用它来获取应显示在表单中的值。可以使用jQuery轻松禁用表单。
$('#model_<column_name>').attr("disabled", true);
希望这是你需要的!