轻轻地改造activescafflod的crate 方法,加快输入数据的速度。

有些时候我们得输入一批有共同属性的记录,比如同一个品牌的商品。activescaffold每次新增数据,都会把表单清空,同样的属性我们必须重新输入或选择。为了dry,我轻轻地改了一下activescafflod的crate 方法。

首先,在配置中把“创建的表单是否应该是持久”的选项改为ture
active_scaffold :product do |conf|
      conf.create.persistent =true
  end

这样每次提交后,表单又会自己打开。

然后修改/vendor/plugins/active_scaffold/lib/action/create.rb文件62行do_new方法:
def do_new
      @record = active_scaffold_config.model.new
      #这段是我加进去,为了增加添加速度
      last_recor = active_scaffold_config.model.find(:first,:order=>'id desc')
      @record = last_recor.clone if last_recor
      #到这里结束
      apply_constraints_to_record(@record)
      @record
    end

搞掂,每次新增一个记录,到会复制对上一个记录的所有属性

最后,当然你也可以只复制需要重复的属性,而不是整个拷贝。

希望对大家的工作有帮助。

你可能感兴趣的:(工作,ext,Blog,Ruby)