bugfix> ruby-on-rails > 投稿

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

  1. ルートを追加します。

root 'welcome#index'
 get 'welcome/search'

  1. search.js.erbのコード:

    $( '#results')。html( "<%= render 'searchresults'%>")

結果Railsアプリケーションのajaxが機能しないのはなぜですか? 皆さんありがとう。 Rails 5.2、Ruby 2.5を使用しています。

回答 1 件
  • <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>
    
    

あなたの答え