如何在FacebookAds :: AdSet对象上设置嵌套属性值

时间:2019-03-14 18:15:35

标签: ruby-on-rails facebook facebook-business-sdk

我目前正在使用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时,永远不会设置该值,这适用于我尝试设置的任何嵌套值。

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

1 个答案:

答案 0 :(得分:0)

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

我的解决方法是像这样创建定位哈希:

targeting = {
    age_min: 20
}

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

adset.targeting = targeting

最后:

adset.save