【问题标题】:Keep form fields filled after an error (RoR)出错后保持表单字段填写 (RoR)
【发布时间】:2010-05-26 21:37:00
【问题描述】:

验证后,我收到一个错误并返回到:action => :new。 表单上的某些字段已经填写,所以即使在出现错误消息后我也想保持填写。 怎么做?

【问题讨论】:

    标签: ruby-on-rails ruby forms


    【解决方案1】:

    您的视图 (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
    

    【讨论】:

      【解决方案2】:

      因为在我的例子中表单是在另一个控制器的视图中我确实使用 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 ... %>
      

      希望对你们中的一些人有所帮助;-)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-25
        • 2021-01-28
        • 1970-01-01
        • 2020-11-05
        • 2021-02-25
        相关资源
        最近更新 更多