Rails项目源代码在下面
def initialize_by_type(type, profile)
@initializers ||= {
"patient" => ->(x) { Interests::PatientNode.new(x) },
"family" => ->(x) { Interests::FamilyNode.new(x) },
"care_staff" => ->(x) { Interests::CareStaffNode.new(x) },
"researcher" => ->(x) { Interests::ResearcherNode.new(x) },
"doctor" => ->(x) { Interests::DoctorNode.new(x) },
"medical_staff" => ->(x) { Interests::MedicalStaffNode.new(x) },
"company" => ->(x) { Interests::CompanyNode.new(x) },
"other" => ->(x) { Interests::OthersNode.new(x) }
}
initializer = @initializers[type]
raise ArgumentError, "unexpected type: #{type}" unless initializer
initializer.call(profile)
end
neo4j错误在下面
ERROR Neo.ClientError.Statement.SyntaxError
Invalid input ':' (line 1, column 20 (offset: 19))
"MATCH (n:Interests::ResearcherNode) RETURN n LIMIT 25"
^
我正在从事医学SNS项目,该项目是由ruby on rails和neo4j DB开发的,在neo4j上存在一些问题,如何解决此问题?Related Image is Here
答案 0 :(得分:0)
您的密码查询不正确。
您有这个(n:Interests::ResearcherNode)
,对于密码来说是正确的。 :
表示标签的开头,或者使用::
定义一个空标签(不允许)。
您的标签也称为ResearcherNode
(1)或:ResearcherNode
(2)。
如果(1)您的查询变为:
MATCH (n:Interests:ResearcherNode) RETURN n LIMIT 25
如果为(2),则需要用反引号将标签名称引起来:
MATCH (n:Interests:`:ResearcherNode`) RETURN n LIMIT 25