Zaujímalo by ma, aký je najlepší spôsob, ako zahrnúť triedy ruby do rámca Volta. Chcem použiť Trieda zásuvky zistiť IP adresu návštevníka stránok. Chcem ho použiť v ovládači, ale uvediem:
require "socket"
v hornej časti súboru nefunguje. Nejaké návrhy?
odpovede:
3 pre odpoveď č. 1Nemyslím si, že môžete používať triedu Socket na strane klienta, pretože používa Volt OpalRb spustiť Ruby na klientovi a bohužiaľ jaNemyslite si, že Opal môže podporovať triedu Socket, pretože je ťažké to urobiť v prehliadači. Môžete však spustiť kód na strane servera a odoslať požadované výsledky klientovi. Môžete to urobiť pomocou Voltove úlohy. Môžete ich vytvoriť takto:
require "socket"
class SocketTask < Volt::Task
def use_sockets
# do your thing with sockets here...
end
end
a potom ich môžete použiť inde, napríklad v tomto ovládači:
class Controller < Volt::ModelController
def some_action
SocketTask.use_sockets
# You can also use the #then method of the returned promise to get the result of the call.
# You can even use the #fail method on the promise to get any thrown errors.
# The following can also run code on the client.
SocketTask.use_sockets.then do |result|
alert result
end.fail do |error|
puts error
end
end
end
K dispozícii je tiež dobré vysielanie obrazovky od Ricka Carlina o úlohách Volta tu.