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

22 浏览
0 Comments

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

你好,我有一个名为Client的模型,其中包含名为Receiver和Receipt的嵌套模型。基本上,客户向一个或多个接收者捐赠资金,这个礼物会显示在收据中。

在model/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 %>

实际上,我怎样才能动态地将客户的"input"传输到:

1. 订单的"amount"属性

2. 收据的"amount"属性

0
0 Comments

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

有一个简单的方法可以实现,即使用.amount = .amount。然而,更好的方法是创建一个名为Donation的模型,其中包含一个amount属性。然后,将客户和接收者与捐赠关联起来。

donation模型可能会取代你的receipt模型。当你需要计算一个客户捐赠了多少钱时,只需将所有相关的捐赠金额相加即可。

通过对捐赠进行建模,你就不需要担心保持多个副本的相同信息(即捐赠金额)同步。从总体上讲,拥有多个相同信息的副本是一个不好的想法。

感谢David Sulc的建议。我会尝试创建一个Donation模型。我之前甚至没有考虑到这一点。

0