在 Rails 中,我使用的一种常见模式是创建一个新的非持久对象以使用默认值填充表单,例如
class ContactsController < ApplicationController
def new
@contact = Contact.new
end
end
...
<%= form_for(@contact) %>
我使用graphql ruby创建了一个表单,我想使用一个非持久对象填充默认值,即我有一个由contractParts填充的createOrUpdate表单
query Contract($contractId: ID!) {
contract(id: $contractId) {
...contractParts
}
}
query DefaultContract($ownerId: ID!) {
defaultContract(ownerId: $ownerId) {
...contractParts
}
}
在我的 query_types.rb
def default_contract(owner_id:)
owner = Owner.find(owner_id)
Contract.new(owner: owner)
end
我想知道这种模式是否可以,或者是否因为我返回一个没有 ID 的对象会出现问题。我查看了所有文档,但找不到任何相关信息,这不是正确的 graphql 吗?