如何在Rails中将一个模型的内容分配给另一个模型?

pin*_*ngu 2 controller model ruby-on-rails

我有以下创建操作:

def create
    @order = Order.new(params[:order])

    if params[:same_as_above] == "1"
      @order.billing_address.name = @order.shipping_address.name
      @order.billing_address.number = @order.shipping_address.number
      @order.billing_address.street = @order.shipping_address.town
    end

    if @order.save
      if @order.purchase
        render :action => "success"
      else
        render :action => "failure"
      end
    else
      render :action => 'new'
    end
  end
Run Code Online (Sandbox Code Playgroud)

它的工作原理,但在将出货地址复制到帐单地址属性的方式上似乎有点麻烦和脆弱.请问有更好的方法吗?

pin*_*ngu 5

@order.billing_address.attributes = @order.shipping_address.attributes
Run Code Online (Sandbox Code Playgroud)

诀窍.