Re: [問題] 如何在新增時候自動帶出相關資訊
※ 引述《yanggary (羊小排)》之銘言:
: ※ 引述《hellolucky (做自己 好自在)》之銘言:
: : new controller => new view => create controller => before_validation
: : 你的before_validation在new的view後面
: : 所以當然在new的view看不到編號
: : 因為你是用before_validation
: : 在create和update都會觸發
: : 假如是用before_create就可以避免在update的時候+1
: : Ruby on Rails在ActiveRecord建立資料表的時候
: : 只要在migration加上timestamps就會自動建立created_at和updated_at兩個欄位
: : 要撈建立時間就抓created_at
: : 要撈最後修改時間就抓updated_at
: 我現在就是抓timestamps的created_at的欄位,現在顯示的格式會帶時間
: 如果不要時間,比如我需要的格式是2010-10-29,是不是在後面直接加上
: (%Y-%m-%d)這樣的輸出格式
: : 我不知道你的單號需不需要連續
: : 如果不需要連續 建議可以使用年+id的組合避免重複
: : 使用after_create
: : 再在裡面處理formnumber
: : 最後在save一次
: 我單號需要連續我是抓現在的[年份+0001.......]的序號,所以到明年就變成
: [2011+0001]
: : 另外日期處理不用這麼複雜 可以去查一下ruby時間的處理方式
: : 希望對你有幫助^^
: 這日期部份我在菸酒菸酒(研究研究)
: 此外在new的時候會有問題?會有怎樣的問題,可否提供建議,謝謝!!
假設今天有兩個使用者a和b 同時使用這個系統新增訂單
a進入新增頁面編輯 => b進入新增頁面編輯
現在訂單數從20100001開始
formnumber該怎麼抓?兩個都得到20100001?
諸如此類訂單重複的問題
解法大概就是多設一個counter去計算現在的編號
new的時候去跟counter要號碼 counter + 1
可能需要用transaction去處理這件事
避免同時動作而得到同樣的訂單編號
ex: 有a和b兩個使用者
a => 要號0001 => b要號0001 => a把counter+1 => b把counter+1 => counter=0003
諸如此類的問題
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.34.160.41
討論串 (同標題文章)
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章