Mutations
Controlling Mutations
Section titled “Controlling Mutations”By default, Quail generates create, update, and delete mutations for every resource that declares writable_attributes. You can customize this behavior per resource.
Skipping Mutations
Section titled “Skipping Mutations”Skip mutations you don’t need:
class ArticleResource include Quail::Resource
attributes :id, :title, :body writable_attributes :title, :body
skip_mutations :deleteendOverriding Mutations
Section titled “Overriding Mutations”Override a mutation with your own class:
class ArticleResource include Quail::Resource
attributes :id, :title, :body
override_mutation :create, CreateArticleendclass CreateArticle < Quail::Mutation graphql_name "CreateArticle"
argument :title, String, required: true argument :body, String, required: true
field :article, ArticleResource.graphql_type, null: true field :errors, [String], null: false
def resolve(title:, body:) article = Article.new(title: title, body: body) if article.save { article: article, errors: [] } else { article: nil, errors: article.errors.full_messages } end endend