Как использовать link_to для передачи значения обратно в поле поиска и выполнения в RAILS, RoR? - PullRequest
0 голосов
/ 28 ноября 2010

У меня есть поле поиска и кнопка. Когда пользователь ищет что-то вроде «кошка», мое представление отображает несколько связанных ключевых слов, таких как «кошачья мята», «игрушки для кошек», «кошки» и т. Д. ... каждый из этих результатов является ссылками и должен передавать значение строка отображается обратно в поиск, чтобы генерировать результаты для выбранной ссылки. Например:

  1. Пользователь отображает страницу поиска и ищет слово "кошка"
  2. страница просмотра отображает результаты, связанные с "кошкой", такой как "кошачья мята", "котята"
  3. Пользователь теперь нажимает кнопку "кошачья мята"
  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 ... заранее спасибо за любые советы ~~

1 Ответ

2 голосов
/ 28 ноября 2010

Прежде всего, вы хотите, чтобы ссылка была: "../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).

...