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_新メソッド:

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

レコードが追加されるたびに、前のレコードに対するすべての属性がコピーされることを考えてみましょう.
最後に、コピー全体ではなく、重複するプロパティのみをコピーすることもできます.
皆さんの仕事に役に立つことを願っています.