作者yanggary (羊小排)
看板Ruby
标题Re: [问题] 如何在新增时候自动带出相关资讯
时间Fri Oct 29 09:16:26 2010
※ 引述《hellolucky (做自己 好自在)》之铭言:
: ※ 引述《yanggary (羊小排)》之铭言:
: 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)这样的输出格式
: : 我现在在做一个订单的系统formnumber是订单编号(20100001...20100002...)
: : 每次在新增的时候单号会自动显示在新增编辑页面且不能被修改
: : 而datenow是新增订单的日期
: : Q1.的意思就是现在在新增的编辑页面没办法显示单号,按下create後才会显示单号
: : 我想要在新增编辑时就显示这单号,该怎麽修改程式?
: 我不知道你的单号需不需要连续
: 如果不需要连续 建议可以使用年+id的组合避免重复
: 使用after_create
: 再在里面处理formnumber
: 最後在save一次
我单号需要连续我是抓现在的[年份+0001.......]的序号,所以到明年就变成
[2011+0001]
: : Q2.的意思是新增後如果要在对某笔订单做修改,按下update後单号又自动加1
: : 这样单号就没办法固定
: : 如:第一笔订单单号20100001,修改第一笔订单後单号变成20100002
: : 再修改一次就变成2010003,要怎麽做才不会让他在update的时候加1
: : Q3.datenow是订单新增的日期,在new页面与edit页面我原本是用Date.today
: : 显示新增日期,後来想如果新增显示是2010-10-28,如果明天有修改这笔订单
: : 日期就会变成2010-10-29,这样就失去订单的可识别性,无法追朔真正建立的日期,
: : 後来想说在edit页面改用created_at,这样不管怎麽修改日期还是在2010-10-28,
: : 除了我这个笨方法,还有没有其他方式可以做到修改时日期还是维持在新增时候的日期?
: : 如有不懂请在告知,谢谢!!
: 另外日期处理不用这麽复杂 可以去查一下ruby时间的处理方式
: 希望对你有帮助^^
这日期部份我在菸酒菸酒(研究研究)
此外在new的时候会有问题?会有怎样的问题,可否提供建议,谢谢!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.130.171.237