0

私はこの奇妙な行動をしていて、その理由を理解していません。これがそのことです:

私の支払いモデルには次のレコードがあります。

1.9.3p286 :019 > u.payment.last
  Payment Load (0.3ms)  SELECT "payments".* FROM "payments" WHERE "payments"."user_id" = 10
 => [#<Payment id: 37, bank_name: "Mercantil", plan: "Plan Uno", date: "2012-12-25", reference_number: "3452435", coupon: "", user_id: 10, created_at: "2012-12-25 21:56:12", updated_at: "2012-12-25 21:58:31", active_until: "2013-01-24">] 

ご覧のとおり、ユーザーのレコードは10個です。

コントローラで同じ情報を取得しようとしても、例外は発生しませんが、

@user.payment.last.active_until

は空で、ビューでも同じです。

たとえば、私の見解でこれを試してみると:

<%= @user.payment.last.active_until %>

何も得られなかった、空白です。

これを試してみたら

<%= @user.payment %>

私は私のコンソールと同じものを手に入れました

[#<Payment id: 37, bank_name: "Mercantil", plan: "Plan Uno", date: "2012-12-25", reference_number: "3452435", coupon: "", user_id: 10, created_at: "2012-12-25 21:56:12", updated_at: "2012-12-25 21:58:31", active_until: "2013-01-24">, #<Payment id: nil, bank_name: nil, plan: nil, date: nil, reference_number: nil, coupon: nil, user_id: 10, created_at: nil, updated_at: nil, active_until: nil>]

ここで何が起こったのか本当にわかりません。助けてください。

前もって感謝します。

PD:ユーザーは多くの支払いをすることができますが、私は最後のものだけが必要です。

4

1 に答える 1

2

それはあなたのコンソールと同じではありません。コンソールには1つのレコードがありますが、ビューには2つのレコードがあります。コンソールに表示されるレコードともう1つの空白のレコードです。

空白のものは、form新しいPaymentレコードを作成するために使用されるフォームのタグヘルパーに使用しているものだと思いますが、それlastは返されるものでもあります。を呼び出す前に、最後の1つを取るか、保存されたレコードをフィルタリングしますlast

于 2012-12-26T00:30:46.860 に答える