Ruby on rails 3 嵌套表单丢失数据
不幸的是,在验证用户输入的数据失败后,我的表单丢失了。如何更改此项,以便表单不会丢失数据 查看\u form.html.erb:Ruby on rails 3 嵌套表单丢失数据,ruby-on-rails-3,forms,fields-for,Ruby On Rails 3,Forms,Fields For,不幸的是,在验证用户输入的数据失败后,我的表单丢失了。如何更改此项,以便表单不会丢失数据 查看\u form.html.erb: <%= form_for(@user, :html => {:name => "newUser""}) do |f| %> <div class="field_left"> <%= f.label :last_name, "Last name<span>*</span>".html_safe
<%= form_for(@user, :html => {:name => "newUser""}) do |f| %>
<div class="field_left">
<%= f.label :last_name, "Last name<span>*</span>".html_safe %><br />
<%= f.text_field :last_name %>
</div>
<% end %>
<div class="field">
<%= f.fields_for :table1 do |ff| %>
<%= ff.text_field :name %>
<% end %>
</div>
def new
@user = User.new
1.times {@user.table1.build}
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @user }
end
end
def create
@user = User.new(params[:user])
@table1= params[:user][:table1][:name]
respond_to do |format|
if @user.save
format.html { redirect_to(@user, :notice => 'User was successfully created.') }
format.xml { render :xml => @user, :status => :created, :location => @user }
else
format.html { render :action => "new" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
谢谢你的帮助 使用:
确保在控制器中设置了@table1
,其中包含从表单提交收到的数据。使用:
确保在控制器中设置了
@table1
,其中包含从表单提交中接收的数据。解决方案是将实例变量设置为值,如以下代码所示
<%= f.fields_for :table1 do |ff| %>
<%= ff.hidden_field :name, :value => @value %>
<% end %>
@价值%>
解决方案是将实例变量设置为值,如以下代码所示
<%= f.fields_for :table1 do |ff| %>
<%= ff.hidden_field :name, :value => @value %>
<% end %>
@价值%>
更适合使用
<%= f.fields_for :table1, f.object.table1 do |ff| %>
<% ff.text_field :name %>
<% end %>
您不必设置值,即使用
更好
<%= f.fields_for :table1, f.object.table1 do |ff| %>
<% ff.text_field :name %>
<% end %>
您不必设置值,即您是否在UserController#创建操作中使用了
@user=user.new(params[:user])
?请发布您的控制器代码。您是否在UserController#创建操作中使用了@user=user.new(params[:user])
?请张贴您的控制器代码。