Ruby on rails 如何在没有表单字段的rails中设置值

Ruby on rails 如何在没有表单字段的rails中设置值,ruby-on-rails,database,validation,oncreate,Ruby On Rails,Database,Validation,Oncreate,我们在数据库中有一个字段,它应该设置为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 如果我们试试这个

我们在数据库中有一个字段,它应该设置为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

我们是如何将管理员密钥输入数据库的

您必须在您的模型中执行此操作

before_validation(:on => :create) do
  self.admin_key = UUIDTools::UUID.timestamp_create().to_s
end