次の値を使用して、ドキュメント番号からランニング番号のコードを書き込もうとしています
念頭に置いているデータ:
document_types records :
{:document_type_code => 'PR', :running_no => 2, ...}
{:document_type_code => 'SO', :running_no => 1, ...}
transactions records :
{:id => 1, :document_no=> 'PR000001', :document_type_code=> 'PR', ...}
{:id => 2, :document_no=> 'SO000001', :document_type_code=> 'SO', ...}
{:id => 3, :document_no=> 'PR000002', :document_type_code=> 'PR', ...}
デザイン:
create_table :runnings do |t|
t.string :document_type_code, :null => false, :limit => 2
t.integer :running_no, :null => false, :default => 0
...
t.timestamps
end
create_table :transactions do |t|
t.string :document_no, :null => false
t.string :document_type_code, :null => false, :limit => 2
...
t.timestamps
end
トランザクションで document_no を生成するにはどうすればよいですか?
document = Transaction.new
document.document_type_code = 'PR'
document.document_no = ??????
...
document.save!