protocolbuffers/protobuf

Cannot assign an array to a repeated field in Ruby

Offen

#7.161 geöffnet am 31.01.2020

 (1 Kommentar) (5 Reaktionen) (0 zugewiesene Personen)C++ (16.128 Forks)batch import
help wantedruby

Repository-Metriken

Stars
 (71.223 Sterne)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

What language does this apply to? Ruby

Describe the problem you are trying to solve. Consider trying to do this:

#!/usr/bin/ruby
require 'google/protobuf'

Google::Protobuf::DescriptorPool.generated_pool.build do
  add_file("google/ads/googleads/v2/services/campaign_budget_service.proto", :syntax => :proto3) do
    add_message "google.ads.googleads.v2.services.MutateCampaignBudgetsRequest" do
      optional :customer_id, :string, 1
      repeated :operations, :message, 2, "google.ads.googleads.v2.services.CampaignBudgetOperation"
    end

    add_message "google.ads.googleads.v2.services.CampaignBudgetOperation" do
      oneof :operation do
        optional :remove, :string, 1
      end
    end
  end
end

module Google
  module Ads
    module GoogleAds
      module V2
        module Services
          MutateCampaignBudgetsRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v2.services.MutateCampaignBudgetsRequest").msgclass
          CampaignBudgetOperation = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v2.services.CampaignBudgetOperation").msgclass
        end
      end
    end
  end
end

include Google::Ads::GoogleAds::V2::Services

def main
  r = MutateCampaignBudgetsRequest.new
  r.operations = [CampaignBudgetOperation.new]
end

if __FILE__ == $0
  main
end

currently protobuf gives this error:

Traceback (most recent call last):
	2: from hi.rb:40:in `<main>'
	1: from hi.rb:36:in `main'
hi.rb:36:in `method_missing': Expected repeated field array (Google::Protobuf::TypeError)

Describe the solution you'd like Assigning an array to a repeated field should work if all the values are of the right type

Describe alternatives you've considered N/A Additional context my ldap pnlpn@ for on-corp discussions.

Contributor Guide