如何在rails中克隆模型实例的特定属性?

时间:2011-11-29 21:37:22

标签: ruby-on-rails ruby

你好我有一个名为Client的模型,它有一个名为Receiver和Receipt的嵌套模型。基本上,客户向捐赠者或许多接收者捐款,这些礼物出现在收据中。

模型/ client.rb

class Client < ActiveRecord::Base
  has_many :receivers
  has_many :receipts

  accepts_nested_attributes_for :receivers
  accepts_nested_attributes_for :receipts
end

views / client / _form.html.erb

<%= simple_form_for @client do |f| %>
  <%= f.input :name %>
  <%= f.input :input %>
  <%= f.input :suscribtion_number %>
  <%= simple_fields_for :orders do |o| %>
    <%= o.input :name %>
  <% end %>
  <%= f.button :submit %>
<% end %>

事实如何我可以动态地将客户端“输入”转移到 1-奥得河的“金额”(属性) 2-和收据的“金额”(属性)

1 个答案:

答案 0 :(得分:1)

您可以执行@receipt.amount = @client.amount。但是,对此进行建模的更好方法是使Donation模型具有amount属性。然后,将客户和接收者链接到捐赠。

donation模型可能会取代您的receipt模型。当您需要计算客户捐赠的金额时,只需将所有相关的捐款金额相加。

通过对捐赠进行建模,您无需担心同步保留相同信息(即捐赠金额)的多个副本。一般来说,拥有相同信息的多个副本是一个坏主意。