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);
希望這是你需要的!