0

我目前正在使用facebook-ruby-business-sdk来管理 Facebook 上的广告。

我写了一个更新FacebookAds::AdSet对象的方法。

# Fetch the adset
adset = FacebookAds::AdSet.get(source_adset_id, session)

# Set the new name
adset.name = 'Test name'

# Save the Adset
adset.save

这有效并设置了名称,但是如果我尝试像这样设置嵌套属性:

adset = FacebookAds::AdSet.get(source_adset_id, session)

# Set the new minimum age 
adset.targeting.age_min = 20

# this is the adset's new min age (should be 20)
p adset.age_min
#=> 18

# Save the Adset
adset.save

当我设置该adset.targeting.age_min值从不设置时,这适用于我尝试设置的任何嵌套值。

我是否以错误的方式设置了这个值?有没有其他方法可以解决这个问题?

4

1 回答 1

0

我猜他们的宝石不允许更新孩子的属性。

我的解决方法是创建一个目标哈希,如下所示:

targeting = {
    age_min: 20
}

创建哈希后,只需将其设置为对象,如下所示:

adset.targeting = targeting

最后:

adset.save
于 2019-03-14T19:48:26.510 回答