首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用vidibus-uuid生成UUID?

如何使用vidibus-uuid生成UUID?
EN

Stack Overflow用户
提问于 2014-07-04 02:18:36
回答 1查看 346关注 0票数 0

我试图使用vidibus-uuid生成与我的域模型相关联的UUID。这意味着每次创建新域时,都会创建一个随机生成的UUID。目前,我在Rails中使用Mongoid,并具有以下域模型:

代码语言:javascript
复制
class Domain
  include Mongoid::Document
  include Vidibus::Uuid::Mongoid
  field :name, type: String
  field :url, type: String
  field :domain_uuid
  validates :domain_uuid, :uuid => {:allow_blank => true}

  belongs_to :user
end

我的域控制器如下所示,用于创建一个新域:

代码语言:javascript
复制
def create
    @domain = Domain.new(params.require(:domain).permit(:name, :url, :domain_uuid))
    if @domain.save
      flash[:notice] = "Domain was saved succesfully."
      redirect_to @domain
    else
      flash[:error] = "There was an error saving the domain. Please try again."
      render :new
    end
  end

我认为,我有以下几点:

代码语言:javascript
复制
<%= form_for @domain do |f| %>

<div class="form-group">
  <%= f.label :name %>
  <%= f.text_field :name, class: 'form-control', placeholder: "Enter domain name" %>
</div>

<div class="form-group">
  <%= f.label :url %>
  <%= f.text_field :url, class: 'form-control', placeholder: "Enter domain url" %>
</div>

<div class="form-group">
  <%= f.label :domain_uuid %>
  <%= f.text_field :domain_uuid, class: 'form-control', placeholder: "Enter domain url" %>
</div>

<div class="form-group">
  <%= f.submit "Save", class: 'btn btn-success' %>
</div>

<% end %>

有像f.text_field :domain_uuid.RandomGenerate()这样的东西随机生成UUID吗?我知道我在视图上的实现是incorrect...just,需要一些关于如何获得随机生成的UUID的指导。

谢谢各位

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-04 13:08:22

我使用uuidtools

代码语言:javascript
复制
gem 'uuidtools'

生成UUID的简单方法,它看起来很好:

代码语言:javascript
复制
UUIDTools::UUID.random_create.to_s
# "7b1fdc50-084c-4c20-a0b2-d76c060ed9cd"

您的更好的名称属性为'uuid',但不是‘域_uuid’,您已经在域中。

代码语言:javascript
复制
class Domain
  include Mongoid::Document

  field :name, type: String
  field :url, type: String
  field :uuid
  validates :uuid, :presence => true

  belongs_to :user

  before_create do
    set_uuid if uuid.blank?
  end


  private

  def set_uuid
    self.uuid = UUIDTools::UUID.random_create.to_s
  end

end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24565813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档