J'ai une forme qui ressemble à ceci:rendu un fichier js.erb lors de la soumission de formulaire ajax Rails
<div class= "parent-container">
<%= form_with scope: @company, url: companies_path, html: { class: "form-inline", remote: true, "data-type" => :js, id: "new-company-create" }, local: true do |f| %>
<div class= "form-group">
<%= f.label :nil, 'Company Name:', :class => 'sr-only'%>
<%= f.text_field :nil, :class => 'form-control-plaintext' %>
</div>
<div class="form-group mx-sm-3">
<%= f.label :name, 'Enter a Company Name : ' %>
<%= f.text_field :name, :class => 'form-control large-input-grp', :placeholder => "Enter any Company Name" %>
</div>
<%= button_to "Create a Company", companies_path, class: "btn btn-default", id: "create_company_main", :type => "submit", :method => "post"%>
<% end %>
</div>
que je suis en train de soumettre via ajax Rails et réalisé quelle douleur un processus simple peut être .
Dans mon contrôleur, la forme des messages à cette méthode:
def create
@newCompany = Company.new(company_params)
respond_to do |format|
if @newCompany.save
format.js
format.html { render :nothing => true, :notice => 'Company created successfully!' }
format.json { render json: @newCompany, status: :created, location: @newCompany }
else
format.html { render action: "new" }
format.json { render json: @newCompany, status: :unprocessable_entity }
end
end
end
et j'ai essayé plusieurs combinaisons dans le bloc respond_to do |format|
, mais rien ne semble fonctionner. Rien de ce que je fais, semble me renvoyer le fichier _create.js.erb à la recherche d'un code HTML.
Dans mon terminal, je peux voir ce qui suit affiché lors de la demande de poste:
Processing by CompaniesController#create as HTML
Les tutoriels que je pouvais voir au sujet de ce sont tous pas à jour et je suis en train de comprendre rails, étape par étape, mais je suis coincé à quelque chose d'aussi basique que ça.
Je ne comprends pas vraiment pourquoi je dois faire format.html
et format.json
même si je veux un fichier JS du contrôleur et comment puis-je obtenir le fichier js.erb à partir du contrôleur.
pourquoi avez-vous besoin de mentionner ' "type de données"=>: js' lorsque vous avez mentionné alredy' distance: true'? – Gabbar
J'essayais différentes options. Garder seulement à distance: vrai n'a pas fonctionné. – user122121
'remote: true' ne devrait pas être dans' html', mais être transmis directement comme * form_with * param, comme 'url: companies_path'. –