2016-03-21 144 views
0

我遇到了我正在構建的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 

現在,如果一個人取消訂閱,它會發送給任何人,我只是希望它發送到訂閱。

回答

4

您可以通過所有Person對象迭代:

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

附:

。注意,默認情況下的解決方案是使用each通過ActiveRecord對象進行迭代,但我強烈建議使用find_each,因爲它會在批次內存中加載記錄(10000是缺省的批處理大小),而each會一次加載所有記錄。

More info