搜索查询没有出现在URL中的简单搜索应用程序
我试图建立一个搜索Twitter如需查看图像的应用程序。在我到达那里之前,我需要跳过构建一个工作搜索字段的恐吓障碍,该字段将一个值提供给函数。搜索查询没有出现在URL中的简单搜索应用程序
在那种年代由Pages controller
控制我index.html.erb
文件,我有这样的代码:
<%= form_tag root_path ({:controller => "pages", :action => "search", :method => "get", :class => "grabTweets" }) do %>
<%= text_field_tag :tweets, params[:tweets] %>
<% end %>
在我Pages controller
我:
def search
def grabTweets
@tweet = Twitter.search(params[:tweets] + "[pic] "+" path.com/p/", :rpp => 3, :result_type => "recent").map do |status|
@tweet = "#{status.text}" #class = string
@urls = URI::extract(@tweet, "http") #returns an array of strings
end
end
end
两个问题:
我的搜索查询ISN没有被传递到grabTweets函数中,如搜索后执行的URL所证明的那样:
http://localhost:3000/?action=search&class=grabTweets&method=get
(搜索查询是单词“桥”
这有什么错我的代码,搜索查询没有被正确执行。
我的代码在控制器中应该放在def home
或def search
,因为我希望搜索结果显示在root_path
中,并且不打算更改页面吗?
在此先感谢您的帮助!我彻底难倒了。
我认为你需要阅读一本书introducting Rails的,因为似乎你缺少许多基本面。
你有你的页面上(你好像叫“家”)和搜索结果的动作的动作。您的表单需要调用搜索操作的url。这将是这样的:
<%= form_tag({:controller => "pages", :action => "search"}, {:method => "get", :class => "grabTweets"}) do %>
...
在这种状态下(有关的form_tag方法的更多详细信息,请参阅API),它会调用搜索行动(这不应该有另一种方法叫grabTweets
嵌套它 - 这没有任何意义),然后将呈现search.html.erb(大概是一页搜索结果)。
在你的路由文件,你需要为家庭和搜索的路线。
如果您希望页面而无需刷新页面更新,那么你需要在表格上使用:remote => true
和使用AJAX处理响应。
如果您希望这两个页面是相同的,但其中一个包含结果,则可以将搜索功能移到主动作中,并且只在填充了params [:tweets]时调用它,或者只是将这两个动作呈现相同的模板。
我会建议通过Rendering Guide和阅读以了解更多。