protocolbuffers/protobuf
GitHub で見るCannot assign an array to a repeated field in Ruby
Open
#7,161 opened on 2020年1月31日
help wantedruby
Repository metrics
- Stars
- (71,223 stars)
- PR merge metrics
- (平均マージ 2d 11h) (30d で 185 merged PRs)
説明
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.