2017-10-15 25 views
0

我试图让graphql-ruby在我的rails应用上工作。到目前为止,我已经设置了一切或多或少的东西,但是当我在浏览器中访问/ graphiql页面时,我无法访问自定义的UserType(预定义的测试用例在之前工作,但是出现此错误消息中的开发工具的网络标签: NoMethodError在GraphqlController#执行 未定义的方法`用户类型”为# GraphQL ::定义:: TypeDefiner:0x007fa3728b2348设置ruby-graphql:未找到用户类型

你能帮我

我模式定义如下:(leaves_messenger_schema.rb)

LeavesMessengerSchema = GraphQL::Schema.define do 
    mutation(Types::MutationType) 
    query(Types::QueryType) 
end 

我的用户类型的定义如下:(类型/ user_type.rb)

Types::QueryType = GraphQL::ObjectType.define do 
    name "Query" 

    field :viewer, types.UserType do 
    resolve ->(obj, args, ctx) { 
     ctx[User.last] 
    } 
    end 
end 

和我的用户类型(类型/ user_type.rb):

Types::UserType = GraphQL::ObjectType.define do 
    name 'User' 
    description 'A user' 

    field :id, types.String 
    field :email, types.String 
end 

我的routes.rb被定义为每发电机。这应该是正确的,因为我可以导航到graphiql页面并且测试用例工作。

非常感谢您给我的任何建议!

+0

哦改变你的代码,我知道我可能应该写用户类型=代替类型::用户类型=,我只是想看看它是否有帮助。前一版本显示相同的错误。 – jj56723

回答

0

我认为你做了一个错字,试图从这个

field :viewer, types.UserType dofield :viewer, Types::UserType do

+0

酷!是的,它的工作原理。这样做肯定更有意义:)我还没有完全理解一切是如何工作的,而且文档中有type.UserType,但我想我必须在其他地方以不同的方式进行格式化。谢谢! – jj56723