【问题标题】:Serialized form fields in Ruby on Rails problemRuby on Rails 问题中的序列化表单字段
【发布时间】:2011-03-01 22:56:47
【问题描述】:

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

我的模特:

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"

【问题讨论】:

    标签: ruby-on-rails forms serialization


    【解决方案1】:

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

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

    而且运行正常

    【讨论】:

    • 嘿,我停止使用序列化字段方法,所以我不能再测试了,但答案似乎可行,谢谢
    猜你喜欢
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 2011-07-05
    • 2023-03-29
    相关资源
    最近更新 更多