0

私はRubyonRailsにかなり慣れていません。最近、フォームがあらゆる種類の問題を引き起こしているので、ここでのあなたの助けとサポートは非​​常に価値があります。

私のhome.html.erbファイルには次のコードがあります:

    <%= form_tag({:controller => "pages", :action => "search"}, :method => "get", :class => "grabTweets") do %>
    <%= text_field_tag(:tweets)%>   
    <% end %>

ユーザーがその検索フィールドに入力した値を取得してgrabTweets、次のコードを含む呼び出された関数に渡そうとしています。

  def grabTweets(mySearch)
    @tweet = Twitter.search(mySearch + "[pic] "+" instagr.am/i/", :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

のmyフォームコードhome.html.erbは正しくレンダリングされますが、grabTweets関数と通信しません。私と同じくらいグーグルといじくり回しているので、答えがわからないようです。home.html.erbのコードは、これをローカルホストURLの末尾に追加します:/assets?utf8=✓&amp;tweets=google。そのため、検索は正しくルーティングされていません。

前もって感謝します!

4

2 に答える 2

0

あなたのURLは大丈夫です。検索の場合、引数をGET paramsとして渡す必要があります(現在行っているように)

問題は、検索引数にアクセスする方法です。次のような関数で引数を読み取ろうとする代わりに、次のようにします。

def grabTweets(mySearch)
  @tweet = Twitter.search(mySearch + "[pic] "+" instagr.am/i/", :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

paramsハッシュを読み上げます。

def grabTweets
  @tweet = Twitter.search(params[:tweets] + "[pic] "+" instagr.am/i/", :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

そしてこれはRubyです。キャメルケース変数は使用しないでください。

于 2012-06-04T00:10:22.350 に答える
0

2つのことがあります:最初にあなたはあなたのURLが書き込みコントローラーにルーティングされることを確認する必要があります

match '/search', :to "pages#search"

それをするべきです。

次に、PagesControllerの検索アクションで、

grabTweets(params[:tweets])

結果を使って何か面白いことをします。明らかに、grabTweetsがコントローラーのインスタンスメソッドでない場合は、呼び出し方法を調整する必要があります。

于 2012-06-04T10:02:29.427 に答える