2017-06-18 18 views
0

私の見解では問題はAtionCableによって生成された追加のnill出力です! データベースをリセットしましたが、データベースにレコードがない場合でも、このnillの出力が表示されます。部分的に screenshotRailsに余分なnill出力があるのはなぜですか? - ループ部分的に

<div id="allcomments"> 
    <%= render partial: 'hot/post_comments', locals: {allcomment: @allcomments}%> 
</div> 

<% allcomment.each do |s| %> 
    <%= s %> 
    <div class="well"> 
    <%= s.comment %> 
    </div> 
<% end %> 

channel.coffee:私のコントローラで

received: (data) -> 
    $('#allcomments').append data['commentpost'] 

enter image description hereenter image description here

@allcomments = @thispost.commentposts 
+0

私はActionCableを無効にしても同じ問題が発生します。それでは、アクションケーブルから来るべきではありません。 –

+0

'@ thispost'とは何ですか? – Pavan

+0

@Pavanあなたは正しいです。助けてくれてありがとう、私は解決策を見つけた。もしあなたがそれを説明できるのであれば、なぜ私の答えをコピーして、それの理由であなたの説明を正しくしてください。私はあなたの答えに印をつけます。自分の時間を節約するために、同じ問題を抱えている人のために少し質問を編集します。 "@thispost"は人々がそれの下でコメントすることができる投稿です –

答えて

0

レコードがないときにはnillで、それをhtmlに追加すると、それぞれの評価が戻ります。だから、あなたが部分的

解決
<%- if !allcomment.blank? -%> 
    do what you already have 
<%- else %-> 
    <div class="no_results">No comments</div> 
<% end %> 
+0

私はあなたの解決策を試してみました。 <%allcomment.each do | s | %> <%if!s.blank? %>

<%= s.comment %>
<% else %>
No comments
<% end %> <% end %> –

0

のチェックを追加することができますあなたは何のレコードを持っていない場合のいずれかのアカウントに必要な、そしてそのための適切なHTMLを返す、またはJS /コーヒー

上:Iドン「トンはなぜ知っているが、コントローラに、私はこの行を持っていた:

だけでなく、それはあなたを与えるだろうので、あなたはあなたのビューで <% @user= Users.find(f.user_id) %>ような何かを行うことができないので、データベースに保存されていない1つの余分 nilレコードを返さ
@allcomments = @thispost.commentposts 

エラーcan not find User with nill id

ループビューには、1つの余分な出力が含まれています(nil)。

ので、私のためのソリューションは、コントローラ内のこのだった:、私の最初のコメントは、余分なnil出力を返す理由を誰かが知っている場合は私に知らせてください感謝

@allcomments = Commentpost.where(post_id: @thispost.id) 

関連する問題