Ruby on rails Rails:还原使用form_标记的非模型表单的内容

Ruby on rails Rails:还原使用form_标记的非模型表单的内容,ruby-on-rails,forms,error-handling,restore,Ruby On Rails,Forms,Error Handling,Restore,我的第一个Rails应用程序(使用Rails 3)进展良好。MVC交互进行得很顺利,但是我很难使用与模型没有直接关系的表单 我使用的是form_标签,如果成功,一切都会正常。然而,处理错误有点不友好。实际的错误消息存储在flash中,layouts/application.html可以很好地显示出来,但是如果表单能够记住用户刚刚填写的内容,我真的很想看到它。但事实并非如此:所有字段都重置为默认值 我喜欢对象上RESTful操作的表单自动记住它们提交的值,并在出现错误时以红色突出显示的方式。没有红

我的第一个Rails应用程序(使用Rails 3)进展良好。MVC交互进行得很顺利,但是我很难使用与模型没有直接关系的表单

我使用的是form_标签,如果成功,一切都会正常。然而,处理错误有点不友好。实际的错误消息存储在flash中,layouts/application.html可以很好地显示出来,但是如果表单能够记住用户刚刚填写的内容,我真的很想看到它。但事实并非如此:所有字段都重置为默认值

我喜欢对象上RESTful操作的表单自动记住它们提交的值,并在出现错误时以红色突出显示的方式。没有红色突出显示我很好,但是如果我能让表单的字段保留提交的值,我真的很喜欢

有人能建议怎么做吗

相关文件摘录:

视图/cardsets/import.html.erb:

<%= form_tag :action => :import_data, :id => @cardset do %>
  ...
  <%= text_field_tag "separator", "", :maxlength => 1 %>
  ...
  <%= text_field_tag "formatting_line" %>
  ...etc (more fields)

第二个arg to text_field_标记是要在字段中填充的值。试着这样做:

  <%= text_field_tag "separator", params[:separator], :maxlength => 1 %>
1%>

如果您的字段有默认值,您需要通过表单的“显示”操作进行设置:

# GET
def show_form
  params[:key] = 'default'
end

# POST
def validate_form_and_act
  # Don't set it here to reuse what the user passed.
end
或者直接在模板上(不太好,因为每次都使用
|
,并添加更多控制器数据以查看):


# GET
def show_form
  params[:key] = 'default'
end

# POST
def validate_form_and_act
  # Don't set it here to reuse what the user passed.
end
 <%= text_field_tag 'name', params[:key] || 'default' %>