簡體   English   中英

Rails-向我的應用程序添加命令行腳本

[英]Rails - Adding a command line script to my app

我不喜歡問noobie問題,但是我花了比我更多的時間去考慮谷歌搜索和試圖弄清楚這個簡單的過程。 我正在嘗試使用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

如果有人能指出我正確的方向,那就太好了。

好吧,我將發布一些(未經測試的)代碼,這些代碼可能有助於您朝正確的方向發展。 這不是最好的方法,因為它不是很靈活,但是它應該按照您的示例進行操作。 確保將Twitter gem添加到您的Gemfile並捆綁安裝。 創建一個名為TweetsFromAccount的Ruby類。 將其保存在/ lib目錄中就可以了。

class TweetsFromAccount

  def initialize
    @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
  end

  def recent_tweets(quantity)
    array_of_tweets = []

    @client.search("help", :result_type => "recent").take(quantity).each do |tweet|
      array_of_tweets << tweet.text
    end
  end

end

在控制器中,創建一個新的TweetsFromAccount對象,並將其分配給實例變量@tweets。 創建一個附加實例變量,將其值設置為@ tweets.recent_tweets(3)。 這應該獲取最近的3條推文。

def show
  # other stuff

  @tweets = TweetsFromAccount.new
  @array_of_tweets = @tweets.recent_tweets(3)
end

然后在您看來,只需遍歷@array_of_tweets。

<ul>
  <% @array_of_tweets.each do |tweet| %>
    <li><%= tweet %></li>
  <% end %>
</ul>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM