0

誰かが入力フィールドに入力したテキストを、Twitter を検索して値を返す関数にフィードする非常に単純な関数を作成しようとしています。

私のhome.html.erbファイルにはこのコードがありますが、grabTweets 関数を呼び出す必要がある @tweetArray インスタンス変数を呼び出すことが正しい方法であるかどうかはわかりません。

    <%= form_for(@tweetArray) do |f| %>
    <%= f.text_field :grabTweets %>
    <% end %>

私のpages helperファイルには次のものがあります。

  @tweetArray = grabTweets(:grabTweets)

  def grabTweets(mySearch)
    @tweet = Twitter.search( "mySearch +" "[pic] "+" path.com/p/", :rpp => 2, :result_type => "recent").map do |status|
    @tweet = "#{status.text}" #class = string
    urls = URI::extract(@tweet, "http") #returns an array of strings
    end
  end

私のページにはこのエラーが表示されますundefined method grabTweets for PagesHelper:Modulehome.html.erbこのコードを正しく呼び出すには、ファイルに何を入れますか?

編集:

私のコードを更新しましたhome.html.erb

    <%= form_for(grabTweets) do |f| %>
    <%= f.text_field :search %>
    <% end %>

それはもっと理にかなっていますか?

そして、私の中でpages controller

@tweetArray = grabTweets(":search")


def grabTweets(mySearch)
    @tweet = Twitter.search( mySearch + "[pic] "+" path.com/p/", :rpp => 2, :result_type => "recent").map do |status|
    @tweet = "#{status.text}" #class = string
    urls = URI::extract(@tweet, "http") #returns an array of strings
    end
  end

私はまだエラーが発生undefined local variable or method grabTweetsしていますhome.html.erb

4

1 に答える 1

0

モデルと一緒に

@tweet オブジェクトがあるとします。

<%= form_for(@tweet) do |f| %>
  <%= f.text_field :search %>
<% end %>

次に、ルートの設定方法に応じて、ユーザーがフォームを送信すると、find_tweetsアクションが実行されます。/tweetsアクションにヒットするルートを設定できfind_tweetsます(好きなように呼んでください)。

コントローラーには次のものがあります。

def find_tweets
  @tweets = Twitter.search( params[:tweet][:search] + "[pic] "+" path.com/p/", :rpp => 2, :result_type => "recent").map do |status|
    tweet = "#{status.text}" #class = string
    urls = URI::extract(@tweet, "http") #returns an array of strings

    { 
      :tweet => tweet,
      :urls => urls
    }
  end

  @tweets
end

これ@tweetsにより、ツイートと URL を含むハッシュの配列が得られるはずです。私はこれをテストしていませんが、正しい方向に向けられることを願っています.

モデルなしで

モデルなしでこれを行うには、 を使用できますform_tag

<%= form_tag '/tweets/find_tweets' do %>
  <%= text_field_tag "search" %>
<% end %>

コントローラーはあまり変更されませんが、params[:search]代わりに使用して検索パラメーターにアクセスする可能性があります。

于 2012-06-03T23:18:17.723 に答える