将数据从irb文件发送到rails上的ruby

时间:2010-12-28 12:24:29

标签: ruby-on-rails ruby irb rfid

我正在开发一个涉及RFID阅读器的项目。我写了一个简单的.rb文件,它读取RFID标签并输出uid。我现在要做的是将数据存入我的Ruby on Rails应用程序(2.3.x)。我真的不知道如何做到这一点。另一个问题是我需要特定点的数据,例如:我注册一个用户,我希望RFID标签的uid与该用户相关联。我怎么做?我必须使用活动机器吗?或者简单需要我的应用程序中的.rb文件?

.rb脚本(此脚本输出uid。如何将其发送到我的ror(2.3.x)应用程序?

require 'rubygems'
 require 'nfc'
 NFC.instance.find do |tag|
    p tag.uid
end

感谢。

1 个答案:

答案 0 :(得分:2)

您的应用程序似乎有两个部分 - 一个支持Web的服务前端,以及一个将用户与物理设备相关联的硬件前端。我可能错了,但我怀疑当你部署应用程序时,你希望用户走到你的数据中心来扫描他们的标签!

我可以看到明显的分离 - 你需要在用户附近有一个RFID阅读器,这样他们就可以在阅读器前面挥动RFID标签并执行某种动作,然后是用户所在的第二部分家里没有RFID阅读器。

我建议将这两个部分保持为单独的应用程序,并具有一些将多个RFID与用户相关联的逻辑。在Rails / Active Record中,您可能拥有用户模型和与标记的has_many关联。

您需要创建两个应用程序 - 您的Rails应用程序和轻量级桌面应用程序。桌面应用程序在“扫描”计算机上本地运行。首先,它可以是一个守护进程:查看“守护进程”,“daemonize”和“daemon-kit”宝石。

在您的Rails应用程序中,您可以创建用于创建用户和RFID标签之间关联的路线。例如。 POST到/ users /:id / tags

您上面写的小应用程序必须向该地址发送POST。但是应用程序如何知道将标记与哪个用户名相关联?如果不知道你在做什么,我无法提出建议。识别完RFID后,你可以直接询问用户名(STDIN.gets)并在命令行输入,或者在更复杂的应用程序中生成某种独特的令牌,并通过扫描应用程序的GET读入

EG。您可以将其作为守护程序运行,以将RFID标记与用户关联:

require 'rubygems'
require 'nfc'
require 'httparty'

class TagAssociator
  include HTTParty
  base_uri 'example.com'
end

NFC.instance.find do |tag|
  puts "What is your username?"
  username = STDIN.gets
  TagAssociator.post('/users/#{username}/tags', :query => {:uid => tag.uid})
end