我很抱歉,如果有类似这样的问题,但我对如何解决我的问题感到困惑,所以我可以保持我的代码干。
我需要创建任务列表,以便用户可以查看尚未发布的交易。
我的application_controller.rb
我希望创建类似的内容:
(A)
def to_do_list(var)
@var.tableize = var.camelize.where(:status => 0).order("id desc")
end
或
(B)
def to_do_list(var, model_to_do)
var = model_to_do.where(:status => 0).order("id desc")
end
而我的home_controller.rb
我想打电话给:
(A)
to_do_list(purchase_order_header)
to_do_list(purchase_invoice_header)
etc
或
(B)
to_do_list(@purchase_order_headers, PurchaseOrderHeader)
to_do_list(@purchase_invoice_headers, PurchaseInvoiceHeader)
etc
我对如何做到这一点感到困惑,并发送这些参数并设置我的方法,感谢您的帮助:D
PS。如果可以提供,我更喜欢选项(A)。感谢。
答案 0 :(得分: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
的实例变量