Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 配置搜索字段以将搜索值传递到函数时出现问题_Ruby On Rails_Ruby_Forms_Input - Fatal编程技术网

Ruby on rails 配置搜索字段以将搜索值传递到函数时出现问题

Ruby on rails 配置搜索字段以将搜索值传递到函数时出现问题,ruby-on-rails,ruby,forms,input,Ruby On Rails,Ruby,Forms,Input,我是RubyonRails的新手,表单最近给我带来了各种各样的麻烦,所以您在这里的帮助和支持将是非常有价值的 在我的home.html.erb文件中,我有以下代码: <%= form_tag({:controller => "pages", :action => "search"}, :method => "get", :class => "grabTweets") do %> <%= text_field_tag(:tweets)%&g

我是RubyonRails的新手,表单最近给我带来了各种各样的麻烦,所以您在这里的帮助和支持将是非常有价值的

在我的
home.html.erb
文件中,我有以下代码:

    <%= form_tag({:controller => "pages", :action => "search"}, :method => "get", :class => "grabTweets") do %>
    <%= text_field_tag(:tweets)%>   
    <% end %>
home.html.erb
中的my form代码正确呈现,但不与grabTweets函数通信。尽管我在谷歌上搜索和修补,但我似乎无法找到答案。home.html.erb中的代码将此添加到我的本地主机URL的末尾:
/assets?utf8=✓&tweets=google
,因此搜索路径不正确


提前谢谢

您的url很好。对于搜索,您应该将参数作为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

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

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

match '/search', :to "pages#search"
我应该这样做

然后在页面控制器的搜索操作中,调用

grabTweets(params[:tweets])

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

您是否已将搜索操作的条目添加到routes.rb?您的搜索操作是什么样子的?@FrederickCheung除了root“/”to
page#home
之外,我没有做任何事情来编辑我的routes.rb文件。你建议我在这里做什么?@FrederickCheung我该如何要求路由调用我的页面控制器中的特定函数?@ZackShapiro在这种情况下读取路由是错误的。搜索参数应作为参数传入,而不是在url内。
grabTweets(params[:tweets])