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