我有我的代码工作,所以我有一个企业表。有一个铅笔图标,您可以点击编辑商家信息。编辑信息出现在模态弹出框的部分内部。唯一的问题是,一旦他们进行了他们想要的更改并单击更新,它就会将他们发送到该业务的“显示”页面。我想要发生的是关闭弹出框并让它更新信息。这是我的控制器中的更新功能。
def update
@business = Business.find(params[:id])
respond_to do |format|
if @business.update_attributes(params[:business])
flash[:notice] = 'Business was successfully updated.'
format.html { redirect_to(business_url(@business)) }
format.js
else
format.html { render :action => "edit" }
format.xml { render :xml => @business.errors, :status => :unprocessable_entity }
end
end
结尾
我尝试遵循 railscast 43 并创建了一个 .rjs 文件,但我根本无法让它工作。我的更新仍将我带到显示页面。任何帮助,将不胜感激。
编辑:添加了更多代码。
<% form_for(@business) do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
...
<%= f.label :business_category %><br />
<%= f.select :business_category_id, @business_categories_map, :selected => @business.business_category_id %>
</p>
<p>
<%= f.label :description %><br />
<%= f.text_area :description %>
</p>
<p>
<%= f.submit 'Update' %>
</p>
<% end %>
这是我在编辑页面中的表单,它通过弹出窗口中的索引被调用:
<div id="popupEdit<%=h business.id %>" class="popupContact">
<a class="popupClose<%=h business.id %>" id="popupClose">x</a>
<% if business.business_category_id %>
<% @business = business %>
<%= render "business/edit" %>
<% end %>
</div>