Почему не работает ajax из Rails Application? - PullRequest
0 голосов
/ 25 мая 2018

1.Этот код welcome/index.html.erb:

<%= form_tag('search', method:"get",remote:true) do %>
  <%= label_tag(:q, "Search for:") %>
  <%= text_field_tag(:q) %>
  <%= submit_tag("Search") %>
<% end %>

<div id="results">
    <%= render 'searchresults' %>
</div>

2.Этот код _searchresults.html.erb:

<table  class="table">
  <tr>
    <th>Title</th>
    <th>Description</th>
    <th></th>
  </tr> 
  <% @articles.each do |article| %>
    <tr>
      <td><%= article.title %></td>
      <td><%= article.description %></td>
      <td><%= link_to 'Show', article_path(article) %></td>
      <td><%= link_to 'Edit', edit_article_path(article) %></td>
      <td><%= link_to 'Destroy', article_path(article),
              method: :delete,
              data: { confirm: 'Are you sure?' } %></td>
    </tr>
  <% end %>
</table>

3.Этот код WelcomeController:

class WelcomeController < ApplicationController
  def index
    @articles = Article.all
    return @articles
  end
  def search
    @query = params[:q]
    @articles = Article.where('name LIKE ?', "%#{@query}%")
    respond_to do |format|      
        format.html { redirect_to @articles }       
        format.js      
    end
  end
end
Добавить маршруты:
root 'welcome#index'
 get 'welcome/search'

код search.js.erb:

$ ('# results'). Html ("<% = render 'searchresults'%>")

Результат enter image description here Почему не работает ajax из Rails Application?Спасибо всем.Я использую рельсы 5.2, ruby ​​2.5.

1 Ответ

0 голосов
/ 25 мая 2018
<div id="results">    
  <%= render 'searchresults', articles: @articles %>
</div>

Всегда полезно передавать локальную переменную в частичном порядке -

$('#results').html("<%= j render 'welcome/searchresults', articles: @articles%>");

В _searchresults.html.erb

<table  class="table">
  <tr>
    <th>Title</th>
    <th>Description</th>
    <th></th>
  </tr> 
  <% articles.each do |article| %>
    <tr>
      <td><%= article.title %></td>
      <td><%= article.description %></td>
      <td><%= link_to 'Show', article_path(article) %></td>
      <td><%= link_to 'Edit', edit_article_path(article) %></td>
      <td><%= link_to 'Destroy', article_path(article),
              method: :delete,
              data: { confirm: 'Are you sure?' } %></td>
    </tr>
  <% end %>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...