0

このような同様の質問がある場合は申し訳ありませんが、コードをDRYに保つことができるように、問題を解決する方法について混乱しています。

投稿されていないトランザクションをユーザーが確認できるように、タスクリストを作成する必要があります。

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)を好みます。ありがとう。

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 に答える