0

我对 Ruby on Rails 很陌生,最近表单给我带来了各种各样的麻烦,所以你在这里的帮助和支持将非常有价值。

在我的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

我的表单代码home.html.erb正确呈现,但不与 grabTweets 函数通信。像我一样在谷歌上搜索和修补,我似乎无法找出答案。home.html.erb 中的代码将此添加到我的 localhost URL: 的末尾/assets?utf8=✓&amp;tweets=google,因此搜索未正确路由。

提前致谢!

4

2 回答 2

0

有两件事:首先你需要确保你的 url 被路由到写控制器

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

应该这样做。

然后在 PagesController 的搜索操作中,调用

grabTweets(params[:tweets])

并对结果做一些有趣的事情。显然,如果grabTweets不是您的控制器上的实例方法,那么您需要调整调用它的方式。

于 2012-06-04T10:02:29.427 回答
0

你的网址很好。对于搜索,您应该将参数作为 GET 参数传入(就像您目前所做的那样)

问题在于您如何访问搜索参数。而不是像这样尝试读取函数中的参数:

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

读取参数哈希:

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

这就是鲁比。请不要使用 CamelCase 变量。

于 2012-06-04T00:10:22.350 回答