私のアプリケーションでは、特定のタイプのレコード(チェックレジスタのようなもの)を自動的に数値(1001から始まる)に割り当てる必要があります。数字は入力画面の一部として表示する必要がありますが、変更はできません。私自身の自動増分フィールドを割り当てる方法は?
これをRailsでどうやって行うのですか?
注:これはidフィールドとは関係ありません。
私のアプリケーションでは、特定のタイプのレコード(チェックレジスタのようなもの)を自動的に数値(1001から始まる)に割り当てる必要があります。数字は入力画面の一部として表示する必要がありますが、変更はできません。私自身の自動増分フィールドを割り当てる方法は?
これをRailsでどうやって行うのですか?
注:これはidフィールドとは関係ありません。
私が知っている通り、auto_increment
カラムを1つだけテーブルに設定することができ、それは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
次に、あなたが自動にincremendedすべきModel.next__to_useの値を代入するfilter
を使用することができます。また、フォームに表示されなければならない値を得るためにそれを使用することができます。フォームはjQueryを使用して簡単に無効にすることができます。
$('#model_<column_name>').attr("disabled", true);
希望はこれです。