首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >目标公告Starburst gem

目标公告Starburst gem
EN

Stack Overflow用户
提问于 2014-12-15 21:16:46
回答 1查看 149关注 0票数 0

我使用Starburst gem在用户登录时显示公告。有一个选项可以限制用户

代码语言:javascript
复制
Starburst::Announcement.create(
    :body => 'Upgrade to platinum and save 10% with coupon code XYZ!',
    :limit_to_users => 
    [
        {
            :field => "subscription",
            :value => "gold"
        }
    ]
) 

有没有办法像这样为一个字段传递多个值:

代码语言:javascript
复制
{
  :field => "subscription",
  :value => ["gold","silver"]
}

谢谢

EN

回答 1

Stack Overflow用户

发布于 2014-12-26 12:33:42

目前Starburst不支持查询中的'or‘。最好的办法是在user类上创建一个方法,并将其用于目标,这将达到相同的结果。

添加到User类:

代码语言:javascript
复制
class User < ActiveRecord::Base

 def gold_or_silver
    subscription == "gold" || subscription == "silver"
 end

end

然后在config/initializers/starburst.rb中启用该方法(如果该方法不存在,则创建它):

代码语言:javascript
复制
Starburst.configuration do |config|
    config.user_instance_methods  = ["gold_or_silver"]  '
end

然后在过滤消息时:

代码语言:javascript
复制
Starburst::Announcement.create(
    :body => 'Upgrade to platinum and save 10% with coupon code XYZ!',
    :limit_to_users => 
    [
        {
            :field => "silver_or_gold",
            :value => true
        }
    ]
) 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27484992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档