我的第一个 Rails 应用程序(使用 Rails 3)取得了很好的进展。 MVC 交互一切正常,但我在处理与模型不直接相关的表单时遇到了困难。
我正在使用 form_tag,在成功的情况下,一切正常。但是,错误的处理有些不友好。实际的错误消息存储在 flash 中,并通过 layouts/application.html 显示得很好,但如果表单能够记住用户刚刚填写的内容,我真的很喜欢它。但它没有:所有字段重置为其默认值。
我喜欢对象上 RESTful 操作的表单自动记住它们提交的值的方式,如果有错误,它会以红色突出显示。没有红色突出显示我很好,但如果我能让表单的字段保留提交的值,我真的很喜欢它。
谁能建议如何做到这一点?
相关文件摘录:
View /卡片集/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)
Controller /cardsets_controller.rb:
# POST /cardsets/1/import_data
def import_data
success, message = @cardset.import_data(params, current_user)
if success
redirect_to(@cardset, :notice => message)
else
flash.now[:error] = message
render :import
end
end
最佳答案
text_field_tag 的第二个参数是用于填充字段的值。尝试这样的事情:
<%= text_field_tag "separator", params[:separator], :maxlength => 1 %>
关于ruby-on-rails - rails : Restoring contents of non-model form that uses form_tag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4129229/