Concat Integer 和 String 组成方法
Concat Integer & String to form a method
我有点怀疑这是否可行,但我想我会尝试看看社区是否可以帮助我想出一个解决方案。
在我的应用程序中,用户可以创建发票,我试图让他们通过表格设置定期发票,这样他们就可以 select 一个数字、一个间隔(年、月、日)和从那里我可以得到一个间隔。
理想情况下它会形成这样的东西:1.year.from_now
这会告诉我发送下一张发票的日期。这是一个内置的 rails 帮助程序,我想使用我的数据库中的信息
所以 Invoice.create 我检查它是否是将变成模板 (Recurrininvoice) 的经常性发票,如果是我创建它:
Recurringinvoice.create(customer_id: @customer.id, company_id: @company.id,
invoice_number: @invoice.invoice_number, private_notes: @invoice.private_notes,
customer_notes: @invoice.customer_notes, payment_terms: @invoice.payment_terms,
status: "unpaid", discount: @invoice.discount, po_number: @invoice.po_number,
interval: @invoice.interval,
invoice_interval_number: @invoice.invoice_interval_number)
我想做什么:@invoice.invoice_interval_number + "." + @invoice.interval + ".from_now"
那会给我 1.year.from_now,或 2.days.from_now,等等
有没有办法让这一切发生?有没有我没有想到的更好的解决方案?
在ruby中,您可以使用send
方法按名称调用方法。
@invoice.invoice_interval_number
是一个整数。
@invoice.interval
包含您要对 Integer 调用的方法的名称。
from_now
是您要在上一个方法的结果上调用的方法。
这给了我们:
@invoice.invoice_interval_number.send(@invoice.interval).from_now
我有点怀疑这是否可行,但我想我会尝试看看社区是否可以帮助我想出一个解决方案。
在我的应用程序中,用户可以创建发票,我试图让他们通过表格设置定期发票,这样他们就可以 select 一个数字、一个间隔(年、月、日)和从那里我可以得到一个间隔。
理想情况下它会形成这样的东西:1.year.from_now
这会告诉我发送下一张发票的日期。这是一个内置的 rails 帮助程序,我想使用我的数据库中的信息
所以 Invoice.create 我检查它是否是将变成模板 (Recurrininvoice) 的经常性发票,如果是我创建它:
Recurringinvoice.create(customer_id: @customer.id, company_id: @company.id,
invoice_number: @invoice.invoice_number, private_notes: @invoice.private_notes,
customer_notes: @invoice.customer_notes, payment_terms: @invoice.payment_terms,
status: "unpaid", discount: @invoice.discount, po_number: @invoice.po_number,
interval: @invoice.interval,
invoice_interval_number: @invoice.invoice_interval_number)
我想做什么:@invoice.invoice_interval_number + "." + @invoice.interval + ".from_now"
那会给我 1.year.from_now,或 2.days.from_now,等等
有没有办法让这一切发生?有没有我没有想到的更好的解决方案?
在ruby中,您可以使用send
方法按名称调用方法。
@invoice.invoice_interval_number
是一个整数。@invoice.interval
包含您要对 Integer 调用的方法的名称。from_now
是您要在上一个方法的结果上调用的方法。
这给了我们:
@invoice.invoice_interval_number.send(@invoice.interval).from_now