Ich versuche Push-Benachrichtigungen in meinem Ruby-Projekt zu implementieren. Ich habe diesen Code gefunden, kann aber nicht sagen, was er tut. In meinem Projekt verwende ich ActiveRecord nicht, da ich MongoDB verwende. Die beiden Linien kann ich nicht verstehen, sind wie folgtWorin besteht der ActiveRecord Code Scope Code?
scope :android, -> { where(device_type: 'android') }
Ich bin nicht familair mit Active so ist die "-> {where (device_type: 'Android')}" eine SQL-Suche? Was ist das Ergebnis dieses Codes? Fragen Sie sich, wie ich das umsetzen würde, seit ich MongoDB verwende?
Die "Device.android.map" wo und wie kommt die .android? Ich vermute, es gibt eine Unterklasse von Gerätename Android?
Code:
rails g model Device registration_id:string device_type:string
class User < ActiveRecord::Base
scope :android, -> { where(device_type: 'android') }
...
def self.notify_android(data, collapse_key = nil)
require 'gcm'
gcm = GCM.new(ENV['API_KEY']) # an api key from prerequisites
registration_ids= Device.android.map(&:registration_id) # an array of one or more client registration IDs
options = {
data: data,
collapse_key: collapse_key || 'my_app'
}
response = gcm.send(registration_ids, options)
end
...
end
UPDATE:
Ok, das Android ist eine häufig verwendete Abfrage, die als Methodenaufrufe verwendet werden kann. Nun weiß ich, was Umfang, aber nicht sicher, wie mit MongoDB und MongoID implementieren.
Ich denke, das ist richtig für Schienen 4 und MongoID?
scope :android, where(:device_type => 'android')
Also wenn das obige korrekt ist, dann hinterlässt es eine Frage, was das bedeutet?
&:registration_id