代码之家  ›  专栏  ›  技术社区  ›  icecream

RubyonRails问题中的序列化表单字段

  •  0
  • icecream  · 技术社区  · 16 年前

    我的模型中的序列化列在表单中保持正确存在时遇到问题。如果模型验证失败,我希望重新显示“新建”页面,所有模型数据仍在表单中。现在,除了序列化字段之外的所有内容似乎都保持不变(如果我的订单未能购买,则在“新”页上,电子邮件仍被填写,但送货地址字段没有填写)。这是一个Rails bug还是我做错了什么?

    我的模型:

    class Order < ActiveRecord::Base
        serialize :shipping_address
    end
    

    我的控制器:

     def new
       @order = Order.new
     end
    
    def create
      @order = Order.new params[:order]
      if @order.purchase then render :action => "success"
      else render :action => "new"
      end      
    end
    

    我的视图,new.html.haml:

    = form_for @order do |f|
       - if @order.errors.any?
      #errorExplanation
        %p The following errors occurred:
        %ul
          - for msg in @order.errors.full_messages
            %li= msg
      %h2 Billing Information
      = f.label :email
      = f.text_field :email
      %h2 Shipping Address
      = f.fields_for :shipping_address do |b|
        %p.field.address
          = b.label :address1
          = b.text_field :address1
     %p= f.submit "Place Order"
    
    1 回复  |  直到 15 年前
        1
  •  0
  •   apneadiving    15 年前

    我今天添加了同样的问题,似乎表单没有在视图中正确构建。 我只是在创建操作的开头添加了:

     params[:order][:shipping_address] = params[:shipping_address]
    

    而且工作正常

    推荐文章