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

时间:2012-05-20 11:17:41

标签: 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

如果我们尝试这个

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

我们收到验证错误,该字段为空。控制器需要

require 'uuidtools'

我们对该领域的验证是先见和独特的

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

我们是如何将admin_key导入数据库的?

1 个答案:

答案 0 :(得分:1)

你必须在你的模型中做到这一点

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