
ruby 2.5.7 Rails 5.2.4.3 OS: macOS Catalina
1 Introduction de gem'jquery-rails ' 2 Modèle partiel pour la partie que vous souhaitez utiliser la communication asynchrone 3 télécommande: décrire vrai 4 Créez un fichier js.erb 5 Supprimer la destination de redirection du contrôleur
Si ça ne marche pas, ActionView :: Template :: Error est souvent affiché dans le terminal Je pense que la plupart des gens oublient de définir des variables. Après cela, si vous ne faites pas d'erreur dans le nom de l'ID et la description du rendu, cela devrait fonctionner.
Gemfile
gem 'jquery-rails'
Terminal
$ bundle install
app/assets/javascript/sapplication.js
//= require rails-ujs
//= require activestorage
//= require jquery      <--ajouter à
//= require turbolinks
//= require_tree .
Cette fois, nous effectuerons une communication asynchrone sur le nouvel écran de publication,
erb:app/views/posts/new.html.erb
<h1>Posts#new</h1>
<span>Utilisateur actuellement connecté:<%= current_user.name %></span>
<--- form_pour former_Changer pour avec, data: {remote: true}Décris--->
<%= form_for(@post, url: posts_path) do |f| %>
<--- --->
	<div>
		<%= f.label :Titre%><br>
		<%= f.text_field :title, autofocus: true %> <--Ajouter un identifiant
	</div>
	<div>
		<%= f.label :Contenu%><br>
		<%= f.text_area :body %>
	</div>
	<div><%= f.submit "Publier" %></div>
<% end %>
<table>
	<thead>
		<tr>
			<th>Publié par nom</th>
			<th>Titre</th>
			<th>Texte</th>
			<th></th>
			<th></th>
			<th></th>
		</tr>
	</thead>
	<tbody>  <--Ajouter un identifiant
<---d'ici--->
		<% @posts.each do |post| %>
			<tr>
				<td><%= post.user.name %></td>
				<td><%= post.title %></td>
				<td><%= post.body %></td>
				<td><%= link_to "Détails", post_path(post) %></td>
				<td><%= link_to "Éditer", edit_post_path(post) %></td>
				<td><%= link_to "Effacer", post_path(post), method: :delete %></td>
			</tr>
		<% end %>
<---Modèle partiel jusqu'à ici--->
	</tbody>
</table>
La description modifiée est la suivante.
erb:app/views/posts/new.html.erb
<h1>Posts#new</h1>
<span>Utilisateur actuellement connecté:<%= current_user.name %></span>
<%= form_with model:[@post], data: {remote: true} do |f| %>
	<div>
		<%= f.label :Titre%><br>
		<%= f.text_field :title, autofocus: true, id: "text" %>
	</div>
	<div>
		<%= f.label :Contenu%><br>
		<%= f.text_area :body %>
	</div>
	<div><%= f.submit "Publier" %></div>
<% end %>
<table>
	<thead>
		<tr>
			<th>Publié par nom</th>
			<th>Titre</th>
			<th>Texte</th>
			<th></th>
			<th></th>
			<th></th>
		</tr>
	</thead>
	<tbody id="post">
		<%= render 'posts/new', posts: @posts %>
	</tbody>
</table>
<détails> 
Pour le modèle partiel, créez le fichier suivant et remplacez @posts par une variable locale. Ecrire à distance: vrai également dans le bouton de suppression
erb:app/views/posts/_new.html.erb
<% posts.each do |post| %>
	<tr>
		<td><%= post.user.name %></td>
		<td><%= post.title %></td>
		<td><%= post.body %></td>
		<td><%= link_to "Détails", post_path(post) %></td>
		<td><%= link_to "Éditer", edit_post_path(post) %></td>
		<td><%= link_to "Effacer", post_path(post), method: :delete, remote: true %></td>
	</tr>
<% end %>
js:app/views/create.js.erb
$('#post').html("<%= j(render 'posts/new', posts: @posts) %>");
$("text_area").val("");
$("#text").val("");
js:app/views/destroy.js.erb
$('#post').html("<%= j(render 'posts/new', posts: @posts) %>");
<détails> 
app/controllers/posts_controller.rb
  def create
    @posts = Post.all  <---ajouter à
    @post = Post.new(post_params)
    @post.user_id = current_user.id
    if @post.save
      redirect_to new_post_path  <---Effacer
    else
      render :new
    end
  end
  def destroy
    @posts = Post.all  <---ajouter à
    @post = Post.find(params[:id])
    @post.destroy
    redirect_to request.referer  <---Effacer
  end
Modifié.
app/controllers/posts_controller.rb
  def create
    @posts = Post.all
    @post = Post.new(post_params)
    @post.user_id = current_user.id
    if @post.save
    else
      render :new
    end
  end
  def destroy
    @posts = Post.all
    @post = Post.find(params[:id])
    @post.destroy
  end
        Recommended Posts