【发布时间】:2014-04-06 22:42:57
【问题描述】:
我不喜欢问菜鸟问题,但我花的时间比我愿意承认谷歌搜索和试图弄清楚这个简单的过程要多。我正在尝试使用 twitter gem 在我的应用视图中发布推文。
我有这个脚本,当我在命令行上运行它时,它可以工作,但我不知道如何访问我的视图中的数据。我已经安装了宝石。我尝试将此代码添加到我的控制器,但它仍然不允许我在视图中调用它。
require 'rubygems'
require 'twitter'
client = Twitter::REST::Client.new do |config|
config.consumer_key = "(redacted)"
config.consumer_secret = "(redacted)"
config.access_token = "(redacted)"
config.access_token_secret = "(redacted)"
end
client.search("help", :result_type => "recent").take(3).each do |tweet|
puts tweet.text
end
如果有人能指出我正确的方向,那就太好了。
【问题讨论】:
-
在应用的视图中发布推文?听起来是个可怕的想法。你为什么想这么做? View 应该只生成输出来呈现给用户,没有别的。你能解释一下你想做什么吗?您希望何时在 Twitter 上发帖、页面加载时或用户执行特定操作时?
-
我是一个初学者,我只是想练习使用 Rails 和 API。你能解释一下为什么这是一个可怕的想法吗?
-
我已经做到了:“视图应该只生成输出来呈现给用户,没有别的”。 Rails 建立在MVC philosophy 之上,关注点分离是主要的……错误……关注点。您不会从与用户直接交互之外的视图执行任何操作。
-
嗯,我刚刚阅读了 MichaelA 的回答,然后重新阅读了您的问题。如果你想获取并显示推文而不是发布你写的,这就是模式:你在你的模型或控制器中准备东西(我会投票把它在非数据库绑定模型中,但是 meh),然后将其传递给视图以显示。
标签: ruby-on-rails api twitter