我使用Starburst gem在用户登录时显示公告。有一个选项可以限制用户
Starburst::Announcement.create(
:body => 'Upgrade to platinum and save 10% with coupon code XYZ!',
:limit_to_users =>
[
{
:field => "subscription",
:value => "gold"
}
]
) 有没有办法像这样为一个字段传递多个值:
{
:field => "subscription",
:value => ["gold","silver"]
}谢谢
发布于 2014-12-26 12:33:42
目前Starburst不支持查询中的'or‘。最好的办法是在user类上创建一个方法,并将其用于目标,这将达到相同的结果。
添加到User类:
class User < ActiveRecord::Base
def gold_or_silver
subscription == "gold" || subscription == "silver"
end
end然后在config/initializers/starburst.rb中启用该方法(如果该方法不存在,则创建它):
Starburst.configuration do |config|
config.user_instance_methods = ["gold_or_silver"] '
end然后在过滤消息时:
Starburst::Announcement.create(
:body => 'Upgrade to platinum and save 10% with coupon code XYZ!',
:limit_to_users =>
[
{
:field => "silver_or_gold",
:value => true
}
]
) https://stackoverflow.com/questions/27484992
复制相似问题