1

find を使用してカスタム getOrCreate メソッドを作成しようとしましたが、create を使用して何も返されない場合

私のクラス :

class User
  include Neo4j::ActiveNode
  include Neo4jrbConcern

  property :name
  property :email

  validates :name, :presence => true
  validates :email, :presence => true
end

懸念事項から継承された getOrCreate メソッド

def getOrCreate(params)
  obj = self.find(params)
  if obj
    puts 'obj found : ' + obj
    return obj
  else
    return self.create(params)
  end
end

私はこれを試しています:

User.getOrCreate(
   name: data['name'],
   email: data['email']
)

結果はこのエラーです:

Neo4j::Session::CypherError: uuid not defined (line 1, column 86)
"MATCH (result_user:`User`) WHERE result_user.uuid.name = {result_user_uuid_name} AND uuid.email = {result_user_uuid_email} RETURN result_user ORDER BY ID(result_user) LIMIT {limit_1}"
                                                                                      ^
/Users/xxx/.rvm/gems/ruby-2.1.5/gems/neo4j-core-4.0.0/lib/neo4j-server/cypher_response.rb:166:in `raise_cypher_error'
/Users/xxx/.rvm/gems/ruby-2.1.5/gems/neo4j-core-4.0.0/lib/neo4j-core/query.rb:164:in `response'
/Users/xxx/.rvm/gems/ruby-2.1.5/gems/neo4j-core-4.0.0/lib/neo4j-core/query.rb:205:in `pluck'

私が間違ったことがわかりますか?

ありがとう !

ブノワ

4

1 に答える 1