Ruby on rails rails中的ajax表单提交消息错误
Ruby on rails rails中的ajax表单提交消息错误,ruby-on-rails,ajax,Ruby On Rails,Ajax,项目有一个项目总监,项目总监有属性状态 早些时候,我没有使用ajax提交项目。\u每次都会重新加载director表单页面,并相应地访问提交状态。 现在,我使用ajax提交数据时不需要重新加载页面,但在状态值设置一次后,我无法隐藏,也无法显示提交时的任何消息。如何使用ajax特性在行中显示提交的值并在提交后隐藏表单 这是我目前的代码:- index.html.erb <% if project_site.project_directors.empty?%> <%= form
项目
有一个项目总监
,项目总监有属性状态
早些时候,我没有使用ajax提交项目。\u每次都会重新加载director表单页面,并相应地访问提交状态。
现在,我使用ajax提交数据时不需要重新加载页面,但在状态值设置一次后,我无法隐藏,也无法显示提交时的任何消息。如何使用ajax特性在行中显示提交的值并在提交后隐藏表单 这是我目前的代码:- index.html.erb
<% if project_site.project_directors.empty?%>
<%= form_for ProjectDirector.new, :remote => true do |f| %>
<td>
<table class="approval-table">
<tr>
<td>
<ul>
<div>
<div class="wrapper-class">
<%= f.radio_button :status, true %>
<%= f.label :approve %>
<br>
<%= f.radio_button :status, false %>
<%= f.label :reject %>
</div>
<%=f.hidden_field :project_site_id, value: project_site.id%>
</div>
</ul>
</td>
<td>
<%= f.hidden_field :user_id, value: current_user.id %>
<%= f.submit 'Submit', :class => 'button primary small' %>
</td>
</tr>
</table>
</td>
<% end %>
<% else %>
<% project_site.project_directors.each do |project_director| %>
<% if project_director.status == false %>
<td class="rejected fi-x"><%= ' Rejected' %></td>
<% elsif project_director.status == true %>
<td class="approved fi-check"><%= " Approved" %></td>
<% end %>
<% end %>
<% end %>
在保存请求中调用success方法时,需要更新DOM。您可以通过创建一个
create.js.erb
文件来执行一些js
响应
您能检查网络选项卡以查看此请求是否正确通过吗?我没有更改您的代码。检查网络,现在提交表单时没有任何变化
def create
@project_director = ProjectDirector.new(remark_params)
#redirect_to directors_index_path, anchor: '#panel2'
if @project_director.save
if request.xhr?
render json: { success: true }
else
redirect_to notice: "Thing was successfully created."
end
else
render :new
end
end
def create
@project_director = ProjectDirector.new(remark_params)
respond_to do |format|
if @project_director.save
format.js { render layout: false }
format.html { redirect_to notice: "Thing was successfully created." }
else
format.js { render layout: false }
format.html { render :new }
end
end
end
<div id="project_site_view">
<% if project_site.project_directors.empty?%>
<%= render 'from' %>
<% else %>
<%= render 'project_directors', locals: { project_site: project_site } %>
<% end %>
</div>
# _form.html.erb
<%= form_for ProjectDirector.new, :remote => true do |f| %>
<td>
<table class="approval-table">
<tr>
<td>
<ul>
<div>
<div class="wrapper-class">
<%= f.radio_button :status, true %>
<%= f.label :approve %>
<br>
<%= f.radio_button :status, false %>
<%= f.label :reject %>
</div>
<%=f.hidden_field :project_site_id, value: project_site.id%>
</div>
</ul>
</td>
<td>
<%= f.hidden_field :user_id, value: current_user.id %>
<%= f.submit 'Submit', :class => 'button primary small' %>
</td>
</tr>
</table>
</td>
<% end %>
# _project_directors.html.erb
<% project_site.project_directors.each do |project_director| %>
<% if project_director.status == false %>
<td class="rejected fi-x"><%= ' Rejected' %></td>
<% elsif project_director.status == true %>
<td class="approved fi-check"><%= " Approved" %></td>
<% end %>
<% end %>
<% if @project_director.errors.any? %>
<!-- handle error here -->
<% else %>
$("#project_site_view").html("<%= escape_javascript(render partial: 'project_directors', locals: { project_site: @project_director.project_site } ) %>");
<% end %>