通过订阅和取消订阅用户循环

问题描述:

我遇到了我正在构建的Twilio应用程序的问题。现在我有一个选项可以让用户'取消订阅',但如果他们仍然收到一条消息。它是有道理的,他们我只是不知道如何改变它。我在这个问题的底部将包含的方法尝试了其他的说法。他们的方式我可以循环通过取消订阅和订阅一个if else?通过订阅和取消订阅用户循环

def send_message(msg) 
    if Person.subscribed == true 
    @twilio_number = ENV["TWILIO_NUMBER"] 
    @client = Twilio::REST::Client.new ENV["TWILIO_ACCOUNT_SID"], ENV["TWILIO_AUTH_TOKEN"] 

    @client.account.messages.create(
     from: @twilio_number, 
     to: phone_number, 
     body: msg 
    ) 
    end 
end 

现在,如果一个人取消订阅,它会发送给任何人,我只是希望它发送到订阅。

您可以通过所有Person对象迭代:

Person.find_each do |person| 
    if person.subscribed 
    # code here 
    else 
    # code here 
    end 
end 

附:

。注意,默认情况下的解决方案是使用each通过ActiveRecord对象进行迭代,但我强烈建议使用find_each,因为它会在批次内存中加载记录(10000是缺省的批处理大小),而each会一次加载所有记录。

More info