0

对于一个学校项目,我们要创建一个 android 应用程序,其中包含一些传感器并使用数据源的服务器,所以我决定制作一个地理缓存克隆,但用于我当地的大学。

大学建议使用 Axis2,但我决定使用 Ruby on Rails 作为服务器部分。我从来没有学过Ruby on Rails,所以我一直在网上阅读教程和指南,所以我还是个新手!

目前我有一个用户模型设置,与项目关联。用户模型具有名称和电子邮件字段。虽然这些项目具有位置、名称和关键字。

我希望服务器能够做的是,当用户创建一个新项目并上传其坐标时,随机生成一个关键字并返回给用户,无论如何可以这样做吗?

4

1 回答 1

1

要创建关键字,您可以before_create在模型中使用回调Item

class Item < ActiveRcord::Base
  before_create :generate_keyword

  private

  def generate_keyword
    random_string = SecureRandom.hex(13)
    # returns a random string like => "ec8688e16cbbb4cf4b857f865f"
    self.keyword = random_string
  end
end

这是如何工作的:

before_createItem在创建新对象之前自动运行,其他方法包括after_create,before_saveafter_savesave回调在每次保存对象时运行,因此不仅在创建时运行,而且在更新时运行。

所以我命名了before_create方法generate_keyword。然后它将查找该名称的方法并运行它。第一行创建一个随机字符串,第二行将其分配给新Item对象的keyword属性。您需要确保您的items表格有一个keywork列才能正常工作。

keyword在创建对象之前分配(第一次保存),因此您无需在方法结束时保存对象。

于 2013-04-22T01:46:13.600 回答