Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails form_tag remote example

I have this incredible simple form:

<%= form_tag("/portal/search", method: 'get', remote: true ) do %>

  <%= label_tag(:query, 'Search for:') %>
  <%= text_field_tag(:query) %>
  <%= submit_tag("Find") %>

<% end %>
<div id="results"></div> 

I know from the documentation, I can use AJAX through the remote option:

<%= form_tag("/portal/search", method: 'get', remote: true ) do %>

Then I get stuck. I know how to generate results in a view/partial, but how do I get that partial inside the div element? I know a bit of JQuery, so I can select the element. I found a lot of results, but they seem to miss that lightbulb moment for me. I am using Rails 4.1.6

My results are just simple records from a model, like Book (title, author)

Thank you for helping!

EDIT

I've won the cup for missing the point by a long shot. I had to add the search.js.erb inside the view folder instead of assets.

like image 366
MiningSam Avatar asked Sep 22 '14 09:09

MiningSam


1 Answers

Let's say you get @results out of your search method.

In the controller, search method:

respond_to do |format|
  format.html {render or redirect_to wherever you need it}
  format.js 
end

Then all you need is a file named search.js.erb to run the required js at the end of your request. It might look something like:

$('#results_div').html("<%= j @results.pluck(:title).join('<br/>') %>")
like image 177
NicoFerna Avatar answered Sep 27 '22 19:09

NicoFerna