Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 追踪胜负;PSQL/DataMapper的损失_Ruby_Oop_Sinatra_Datamapper - Fatal编程技术网

Ruby 追踪胜负;PSQL/DataMapper的损失

Ruby 追踪胜负;PSQL/DataMapper的损失,ruby,oop,sinatra,datamapper,Ruby,Oop,Sinatra,Datamapper,我有一个用户类,允许人们注册和玩游戏;我还有一个Game类,其中包含所述游戏(RPS)的逻辑 当人们注册时,他们的信息保存在psql数据库中。使用参数获取信息。看起来是这样的: Class User attr_reader :weapon include DataMapper::Resource property :id, Serial property :name, String, required: true property :email, S

我有一个用户类,允许人们注册和玩游戏;我还有一个Game类,其中包含所述游戏(RPS)的逻辑

当人们注册时,他们的信息保存在psql数据库中。使用参数获取信息。看起来是这样的:

Class User

  attr_reader :weapon

  include DataMapper::Resource

  property :id,      Serial
  property :name,    String, required: true
  property :email,   String, required: true, unique: true
  property :password_digest, Text
  attr_reader :password
  attr_accessor :password_confirmation

  validates_confirmation_of :password
  validates_format_of :email, as: :email_address

  has n, :games
对应的游戏类包含以下DB逻辑:

class Game

  include DataMapper::Resource

  property :id,     Serial
  property :win,    ?
  property :lose,   ?

  belongs_to :user
我的问题是,我真的不知道如何记录用户赢/输了多少场比赛。我是否需要(或者我应该为赢和输分别设置不同的类?我应该使用什么键类型(串行/整数)?我只想让“赢”或“输”在玩家每次赢或输时增加一个

非常感谢所有共享的帮助/知识


谢谢。

一种方法是向用户添加两个整数“赢”和“输”,并使助手方法递增:

property :wins, Integer, default: 0
property :losses, Integer, default: 0

# usage: user.increment(:wins) or user.increment(:losses)
def increment(type)
  update({ type => (send(:type) + 1) })
end