【发布时间】:2010-05-26 21:37:00
【问题描述】:
验证后,我收到一个错误并返回到:action => :new。
表单上的某些字段已经填写,所以即使在出现错误消息后我也想保持填写。
怎么做?
【问题讨论】:
标签: ruby-on-rails ruby forms
验证后,我收到一个错误并返回到:action => :new。
表单上的某些字段已经填写,所以即使在出现错误消息后我也想保持填写。
怎么做?
【问题讨论】:
标签: ruby-on-rails ruby forms
您的视图 (new.html.erb) 类似于以下内容
<%= error_message_for :user %>
<% form_for :user, :action=>"create" do|f|%>
<%= f.text_field :login %>
<% end %>
控制器代码(创建方法)
def create
@user=User.new(params[:user])
if @user.save
redirect_to :action=>'index'
else
render :action=>'new' #you should render to fill fields after error message
end
end
【讨论】:
因为在我的例子中表单是在另一个控制器的视图中我确实使用 flash 来存储我的数据,然后检查闪存中是否存在数据。如果是,则将此作为输入字段的默认值,如果不只是显示您想要显示的任何内容。
所以我的代码中的 sn-ps
flash[:date] = start_date
# in the view where to form resides
start_day = flash[:date].nil? nil : flash[:date].day
# ...
<%= select day start_day ... %>
希望对你们中的一些人有所帮助;-)。
【讨论】: