'sr-only'%> -6ren">
gpt4 book ai didi

javascript - 在表单提交期间渲染 js.erb 文件 ajax Rails

转载 作者:行者123 更新时间:2023-12-01 02:54:05 26 4
gpt4 key购买 nike

我有一个如下所示的表单:

<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>

我试图通过 ajax Rails 提交它,并意识到一个简单的过程可能是多么痛苦。

在我的 Controller 中,表单发送到此方法:

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

我在 respond_to do |format| block 中尝试了多种组合,但似乎没有任何效果。

我所做的一切似乎都没有返回 _create.js.erb 文件,而是寻找 HTML。

在我的终端中,我可以看到在发布请求期间显示以下内容:

Processing by CompaniesController#create as HTML

我看到的关于这方面的教程都已经过时了,我试图一步一步地理解 Rails,但我陷入了这样基本的东西。

不太明白为什么我必须执行 format.htmlformat.json 即使我想要来自 Controller 的 JS 文件以及如何获取来自 Controller 的 js.erb 文件。

最佳答案

它正在发送 html 请求,因为您在提交按钮上提到了链接,其行为为 <a href="/compaines">Create a Company</a> ,并且它会在不提交表单的情况下执行您的操作。

试试这个:-

<%= form_for(@company, url: companies_path_path, :html => { class: "form-inline", id: "new-company-create" },remote: true, method: 'POST') 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_tag(type: 'submit', class: "btn btn-default", id: "create_company_main") do %>
Create a Company
<% end %>
<%end%>

关于javascript - 在表单提交期间渲染 js.erb 文件 ajax Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46823390/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com