0

我有一个搜索字段和按钮。当用户搜索“猫”之类的内容时,我的视图会呈现一堆相关的关键字,例如“猫薄荷”、“猫玩具”、“猫”等……这些结果中的每一个都是链接,并且要传递字符串显示回搜索以生成所选链接的结果。例如:

  1. 用户呈现搜索页面并搜索“猫”
  2. 查看页面呈现与“猫”相关的结果,例如“猫薄荷”“小猫”
  3. 用户现在点击“catnip”
  4. 查看页面呈现与“猫薄荷”相关的结果,例如“草”

link_to 可以做到这一点吗?我迷路了,不知道该怎么办......

--

我的代码:

SEARCH VIEW PAGE

<% form for(:search, url => search_path) do |f| %>
Search: <%= f.text_field :search %><br>
<%= f.submit "Search Keyword" %><p>   

<% unless @keywords.nil? %>
  <h3>Keyword Results</h3>
  <% @keywords.each do |k| %>
  <%= link_to k.name, :controller => "search", :action => "keywords", value => k.name %>
<% end %>

SEARCH CONTROLLER

def keywords
  if request.post? then
  @keywords = googlesearchapi(params[:search])
end

我想将用户单击的link_to 值作为 :search 参数传递...在此先感谢您的任何建议~~

4

1 回答 1

2

首先,您希望链接为:“../search/keywords?search=catnip”,为此,请将 link_to 修改为:

<%= link_to k.name, :controller => "search", :action => "keywords", :search => k.name %>

然后,您需要删除该行if request.post? then,否则它将无法处理来自 link_to 的请求,因为它是一个 GET 请求(而不是 POST)。

于 2010-11-28T01:27:48.853 回答