Ruby on rails 在Rails项目中放置代码的位置
我正在尝试使用Ruby Twitter Gem根据某些关键字对推文是否进行地理标记进行分类。我可以在rails控制台上很好地完成这项工作,但我只是想在视图中反映我的发现,我只是不知道如何做到这一点 以下是我在命令行上所做的操作: 我首先设置流媒体客户端:Ruby on rails 在Rails项目中放置代码的位置,ruby-on-rails,ruby,ruby-on-rails-4,tweetstream,Ruby On Rails,Ruby,Ruby On Rails 4,Tweetstream,我正在尝试使用Ruby Twitter Gem根据某些关键字对推文是否进行地理标记进行分类。我可以在rails控制台上很好地完成这项工作,但我只是想在视图中反映我的发现,我只是不知道如何做到这一点 以下是我在命令行上所做的操作: 我首先设置流媒体客户端: client = Twitter::Streaming::Client.new do |config| config.consumer_key = "MYCODE" config.consumer_secret =
client = Twitter::Streaming::Client.new do |config|
config.consumer_key = "MYCODE"
config.consumer_secret = "NOTYOURS"
config.access_token = "HANSHOT"
config.access_token_secret = "FIRST"
end
然后我初始化我的计数:
count = 0
geo = 0
最后,我粘贴我的简短脚本并运行enter:
client.filter(:track => "cat") do |tweet|
count += 1
if(tweet.place.nil?)
# Do nothing
else
geo += 1
end
end
要访问我的结果,我需要Ctrl+C并在控制台中键入“geo”或“count”
在理想情况下,我会有一个显示计数和地理数字的视图。每当我刷新视图时,所述视图将使用更新的数字刷新
我试着将其放入一个控制器中,但是页面从未加载,因为据推测,控制器正在无限地解析流,并且从未获得渲染的机会
我把它放在一个模型文件里,但那也没用
那么,我是不是走错了路?除了IRB,从任何地方都无法获得这些数字吗?在创建控制器代码时,需要记住以下几点:
- 要在视图中显示的所有内容都必须由数据库调用、助手方法或实例变量提供
- 控制器必须及时完成其计划执行的任何操作。无限循环和耗时几分钟的长时间运行的操作是严重问题
- 视图可以自己进行计算,通常它们可以自由地运行任意Ruby代码,但在那里执行繁重的工作被认为是不好的,因为这是控制器的主要责任
def index
@client = Twitter::Streaming::Client.new do |config|
# ... (Configuration)
end
@count = 0
@geo = 0
client.filter(track: "cat") do |tweet|
@count += 1
if (tweet.place)
@geo += 1
end
break if (@count > 10)
end
end
这假定
客户端.filter
操作可以在短时间内产生十个结果。在创建控制器代码时,需要记住以下几点:
- 要在视图中显示的所有内容都必须由数据库调用、助手方法或实例变量提供
- 控制器必须及时完成其计划执行的任何操作。无限循环和耗时几分钟的长时间运行的操作是严重问题
- 视图可以自己进行计算,通常它们可以自由地运行任意Ruby代码,但在那里执行繁重的工作被认为是不好的,因为这是控制器的主要责任
def index
@client = Twitter::Streaming::Client.new do |config|
# ... (Configuration)
end
@count = 0
@geo = 0
client.filter(track: "cat") do |tweet|
@count += 1
if (tweet.place)
@geo += 1
end
break if (@count > 10)
end
end
这假定
客户机.filter
操作可以在短时间内产生十个结果。这是一个很好的信息,尤其是视图中可以显示的内容(db调用、帮助器、实例变量)。但是,我希望在后台持续运行流,并在刷新视图时接收更新的计数。这让我觉得控制器不应该是操作流的那个人,但除此之外我仍然迷失了方向。控制器直接操作流没有什么错,但它必须确保流不会永远运行。如果您正在使用,那么它似乎是基于EventMachine的,在Rails应用程序中可能无法很好地发挥作用。这里应用的标准模式是使用一个轮询脚本将内容写入数据库,控制器检索这些内容以供显示。ActiveRecord使这一点变得非常容易。这是一个很好的信息,特别是视图中可以显示的内容(db调用、帮助器、实例变量)。但是,我希望在后台持续运行流,并在刷新视图时接收更新的计数。这让我觉得控制器不应该是操作流的那个人,但除此之外我仍然迷失了方向。控制器直接操作流没有什么错,但它必须确保流不会永远运行。如果您正在使用,那么它似乎是基于EventMachine的,在Rails应用程序中可能无法很好地发挥作用。这里应用的标准模式是使用一个轮询脚本将内容写入数据库,控制器检索这些内容以供显示。ActiveRecord使这一点变得非常容易。这是一个很好的信息,特别是视图中可以显示的内容(db调用、帮助器、实例变量)。但是,我希望在后台持续运行流,并在刷新视图时接收更新的计数。这让我觉得控制器不应该是操作流的那个人,但除此之外我仍然迷失了方向。控制器直接操作流没有什么错,但它必须确保流不会永远运行。如果您正在使用,那么它似乎是基于EventMachine的,在Rails应用程序中可能无法很好地发挥作用。这里应用的标准模式是使用一个轮询脚本将内容写入数据库,控制器检索这些内容以供显示。ActiveRecord使这一点非常容易做到。