Ruby on rails 如何显示两种类型的用户帐户页面
我有一个具有以下字段的用户模型:名字、姓氏、电子邮件 客户需要两页。第一页用于编辑姓名,第二页用于编辑电子邮件地址 我考虑的一个选项是,使用params来确定应该在用户/编辑中呈现哪些部分:Ruby on rails 如何显示两种类型的用户帐户页面,ruby-on-rails,Ruby On Rails,我有一个具有以下字段的用户模型:名字、姓氏、电子邮件 客户需要两页。第一页用于编辑姓名,第二页用于编辑电子邮件地址 我考虑的一个选项是,使用params来确定应该在用户/编辑中呈现哪些部分: <% if !params[:section] %> <%= render :partial => 'form_for_name' %> <% elsif params[:section] == 'email' %> <%= rende
<% if !params[:section] %>
<%= render :partial => 'form_for_name' %>
<% elsif params[:section] == 'email' %>
<%= render :partial => 'form_for_email' %>
<% end %>
respond_to do |format|
if @user.update_attributes(params[:user])
format.html { redirect_to(@user, :notice => 'User was successfully updated.') }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
这意味着,在电子邮件页面上,如果用户发送了无效电子邮件,错误将显示在第一页而不是电子邮件页面上
我希望看到实现这个场景的最佳方式是什么。或者我应该有2个从用户控制器继承的控制器(名称和电子邮件)?每个控制器都有各自的视图
有更好的解决方案吗?为什么不将“section”参数也发送到更新调用?这样,当出现错误并转到“编辑”页面时,section参数将可用,并且将呈现正确的表单
在更新期间发送“section”的方法也应该非常简单。在你有表单的地方贴上一段,我将向你展示如何将当前的“部分”传递给更新操作。基本上,您只需在表单操作中拼写路径“user_path(@user,:section=>params[:section])。嗨,aditya,您是指这个位吗?用户路径(@user),:html=>{:multipart=>true})do | f |%>是的,使用用户路径(@user,:section=>params[:section]),:html=>{:multipart=>true})do | f |%>谢谢你回复Aditya。因此,我认为,我这样做(即通过params)是一种很好的方法?当然,这很好。绝对不要进入多个控制器或对控制器进行子类化。如果您想让它更干净,请查看railscast on multi-step表单。