作者hellolucky (做自己 好自在)
看板Ruby
标题Re: [问题] 如何在新增时候自动带出相关资讯
时间Fri Oct 29 00:45:58 2010
※ 引述《yanggary (羊小排)》之铭言:
: ※ 引述《yanggary (羊小排)》之铭言:
: : ruby 1.8.7 rails 2.3.8
: : 小弟有几个问题,我是用scaffold建出基本框架
: : Q1:(有图有码)
: : 我在新增时formnumber(这栏位每次新增自动会累加)都不会显示号码
: : 在按下create後才会显示
: : 是否哪里有错?
: : models/funtions http://goo.gl/6DGl
new controller => new view => create controller => before_validation
你的before_validation在new的view後面
所以当然在new的view看不到编号
: : Q2:(有图)
: : 如一笔资料新增後需要再做编辑
: : update之後formnumber的值又会自动加1,
: : 如何让锁住他在编辑的时候不要自动加1?
因为你是用before_validation
在create和update都会触发
假如是用before_create就可以避免在update的时候+1
: : Q3:(有图有码)
: : 关於日期显示的问题
: : 在new跟edit的Datenow我是抓取Date.today
: : 後来想到如果我今天新增2010-10-28明天作修改2010-10-29
: : 日期就被改成2010-10-29,那如果edit的Datenow我改用created_at时间就不会被改
: : 有没有可以一致的方式?
: : views/edit http://goo.gl/XGtd
: : view/new http://goo.gl/ktbv
: : 有图http://http://goo.gl/fx3z,有程式码
: : 这两个栏位在新增的时候要先显示出来且不可被修改
: : 感谢在先!!
Ruby on Rails在ActiveRecord建立资料表的时候
只要在migration加上timestamps就会自动建立created_at和updated_at两个栏位
要捞建立时间就抓created_at
要捞最後修改时间就抓updated_at
: 我现在在做一个订单的系统formnumber是订单编号(20100001...20100002...)
: 每次在新增的时候单号会自动显示在新增编辑页面且不能被修改
: 而datenow是新增订单的日期
: Q1.的意思就是现在在新增的编辑页面没办法显示单号,按下create後才会显示单号
: 我想要在新增编辑时就显示这单号,该怎麽修改程式?
我不知道你的单号需不需要连续
如果不需要连续 建议可以使用年+id的组合避免重复
使用after_create
再在里面处理formnumber
最後在save一次
: 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时间的处理方式
希望对你有帮助^^
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.70.79.140
1F:→ hellolucky:顺带一提 如果要在new就显示订单编号 会有很多问题 10/29 01:01
2F:推 yanggary:感谢大家三更半夜不睡觉帮我解问题,我先试一下,在new 10/29 09:04