我正在构建一个Twilio应用程序的问题。现在我可以选择让用户“取消订阅”,但如果他们这样做,他们仍会收到消息。它是有意义的,我只是无法弄清楚如何改变它。我在方法的底部尝试了一个if else语句。他们是否可以通过取消订阅进行循环并使用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
现在如果一个人取消订阅,它会发送给任何人,我只是希望它发送给订阅。
答案 0 :(得分:4)
您可以遍历所有Person
个对象:
Person.find_each do |person|
if person.subscribed
# code here
else
# code here
end
end
P.S。
注意,默认解决方案是使用each
来迭代ActiveRecord对象,但我强烈建议使用find_each
,因为它会批量加载内存中的记录(10000是默认值)批量大小),而each
会一次加载所有记录。