0

如果有任何类似的问题,我很抱歉,但我对如何解决我的问题感到困惑,所以我可以保持我的代码干燥。

我需要创建一个任务列表,以便用户可以看到尚未发布的交易。

application_controller.rb想创建类似的东西:

(一种)

def to_do_list(var)
  @var.tableize = var.camelize.where(:status => 0).order("id desc")
end

或者

(乙)

def to_do_list(var, model_to_do)
  var = model_to_do.where(:status => 0).order("id desc")
end

虽然我home_controller.rb想打电话给:

(一种)

to_do_list(purchase_order_header)
to_do_list(purchase_invoice_header)
etc

或者

(乙)

to_do_list(@purchase_order_headers, PurchaseOrderHeader)
to_do_list(@purchase_invoice_headers, PurchaseInvoiceHeader)
etc

我对如何做到这一点感到困惑,并发送这些参数并设置我的方法,感谢您的帮助:D

附言。如果可以提供,我更喜欢选项(A) 。谢谢。

4

1 回答 1

0

我不确定这是否是您想要实现的目标,但请尝试一下

to_do_list('purchase_order_header')
to_do_list('purchase_invoice_header')

def to_do_list(model)
  instance_variable_set "@#{model}", model.camelize.constantize.where(:status => 0).order("id desc")
end

调用后to_do_list,您应该调用实例变量@purchase_order_header@purchase_invoice_header

于 2013-03-09T05:49:25.550 回答