我的模型中有这个方法:
## Finds invoice with next upcoming due date. ##
def self.next_due
where("due_date >= ? AND status = ?", Time.now, 'Open').order("due_date ASC").first ? where("due_date >= ?", Time.now).order("due_date ASC").first.due_date : ''
end
这将返回下一张发票到期日的due_date。
我正在尝试将link_to设为实际发票,但到目前为止还无法让它发挥作用。
我觉得自己是个白痴,因为当我对链接没有任何问题时我无法建立一个简单的链接,直到现在我都无法自行解决。< / p>
是否可以将此查询返回的发票存储为我可以从视图中调用并链接到的变量?如果没有,那么我将如何建立链接呢?
感谢。
答案 0 :(得分:1)
您可以执行以下操作:
def self.next_due # This is a Class method!
where("due_date >= ? AND status = ?", Time.now, 'Open').order("due_date ASC").first.try(:due_date)
end
然后在你的观点中你可以像这样使用它:
link_to Invoice.next_due, your_path_helper
你的命名并不是很明确,我建议你改变一些事情,比如:
# Invoice model
def self.next_invoice
where("due_date >= ? AND status = ?", Time.now, 'Open').order("due_date ASC").first
end
然后在你的观点中调用它:
- if next_invoice = Invoice.next_invoice
= link_to next_invoice.due_date, your_path_helper
答案 1 :(得分:0)
这是因为您返回截止日期
class Invoice
def self.next_due
where("due_date >= ? AND status = ?", Time.now, 'Open').order("due_date ASC").first
end
end
然后可能在帮手
def next_due_invoice_link
invoice = Invoice.next_due
return if invoice.blank?
link_to invoice.due_date, invoice_path(invoice)
end