0

私はコードのこの部分を持っています:

<% current_user.meta_accounts.each do |meta_account| %>
    <%= content_tag(:li, link_to(meta_account.name, 'javascript:void(0)')) %>
<% end %>

したがって、Rails にすべてのMetaAccounts をリストに表示してもらいたいのですが、次のようになります。

<li><a href="javascript:void(0)">Wallet</a></li>
<li><a href="javascript:void(0)">Credit card</a></li>
<li><a href="javascript:void(0)">Debit card</a></li>
<li><a href="javascript:void(0)">Debts</a></li>
<li><a href="javascript:void(0)">javascript:void(0)</a></li> #This is the problem

MetaAccountそのため、まだ作成されていないme も表示されます。

私の MetaAccounts テーブルには、これがあります。Postgresを使用しています。

ここに画像の説明を入力

したがって、row_number が である最後の行も表示されます*。理由も、これを回避する方法もわかりません。

助けてくれてありがとう!

4

2 に答える 2

1

PostgreSQL で表示される * 行は実際のレコードではなく、新しいレコードを簡単に作成する方法です。確認したい場合は、次のクエリを実行します。

SELECT COUNT(*) FROM MetaAccounts WHERE user_id=1

4を返します。

MetaAccount問題は、保存されていないオブジェクトにあると思いますcurrent_user.meta_accounts。これは、たとえば、フォームにバインドされた空のオブジェクトを作成するフォームの場合に当てはまります。への通話がないことを確認してくださいcurrent_user.meta_accounts.build(...)

その場合は、eachループ内MetaAccountで空白のすべてのオブジェクトを単純にスキップできますname

于 2013-08-31T12:57:04.953 に答える