0

UUID 文字列として自動的に設定する必要があるフィールドがデータベースにあります。どうやってそれをしますか。このフィールドは自動生成されるため、ビューには含まれません。私たちの新しいフォームはそう呼ばれます。

def new
  @list = List.new
  respond_to do |format|
      format.html
end

作成アクションはこちら

def create
  @list = List.new(params[:list])
  @list = list.create!(params[:list]) 
end

これを試してみると

@list.admin_key = UUIDTools::UUID.timestamp_create().to_s

検証エラーが発生し、フィールドは空です。コントローラが必要

require 'uuidtools'

フィールドに対する私たちの検証は、それが存在し、一意であることです

validates :admin_key,
            :presence => true,
            :uniqueness => true

どのようにして admin_key をデータベースに入れましたか?

4

1 に答える 1

1

あなたはあなたのモデルでこれをしなければなりません

before_validation(:on => :create) do
  self.admin_key = UUIDTools::UUID.timestamp_create().to_s
end
于 2012-05-20T11:45:52.603 に答える