错误后保留表单字段(RoR)

时间:2010-05-26 21:37:00

标签: ruby-on-rails ruby forms

验证后,我收到错误,然后返回:action => :new。 表单上的某些字段已经填满,所以我想在错误消息之后保持填充。 怎么做?

2 个答案:

答案 0 :(得分:17)

你的观点(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

答案 1 :(得分:1)

因为在我的情况下,表单位于另一个控制器视图中,我确实使用 flash 来存储我的数据,然后检查闪存中是否存在数据。如果是,则将此值作为输入字段的默认值,如果不是只显示您想要显示的内容。

我的代码中的代码片段

flash[:date] = start_date

# in the view where to form resides
start_day = flash[:date].nil? nil : flash[:date].day
# ...
<%= select day start_day ... %>

希望能帮助你们中的一些人; - )。