0

私のショービューには次のものがあります:

  <div class="reviews" >
  <% @reviews.each do |review| %>
  <%= review_block review %>
  <% end %>
  </div>

私のコントローラーには次のものがあります。

  def show    
  @review = Review.new
  @reviews = @user.reviews
  end

アイデアは、書かれたレビューがある場合、現在存在する div の下のページに表示されるということです。この部分は正常に機能しています。

しかし、レビューが書かれていない場合、現在存在する div の下には何も表示されません。「レビューが書かれていません、申し訳ありません!」のようなテキストを表示するにはどうすればよいですか?

理想的には、より多くのテキスト/画像を表示するため、パーシャルを表示したいと思います。

私はこのようなことに取り組んでいました:

  <div class="reviews" >
  <% @reviews.each do |review| %>
  <%= review_block review if review>0 %>
  <%= else render :partial => 'layouts/no_reviews' %>
  <% end %>

しかし、それは機能していません。助けてくれてありがとう!

クリス

4

2 に答える 2

1
<div class="reviews" >
<% if @reviews && @reviews.present? %>
  <% @reviews.each do |review| %>
  <%= review_block review %>
<% end %>
<%= else render :partial => 'layouts/no_reviews' %>
<% end %>

例えば

1.9.3-p327 :012 > if @abc
1.9.3-p327 :013?>   puts 'yes'
1.9.3-p327 :014?>   end
 => nil # We get noting
1.9.3-p327 :015 > @abc='lolololo'
 => "lolololo" 
1.9.3-p327 :016 > if @abc
1.9.3-p327 :017?>   puts 'yes'
1.9.3-p327 :018?>   end
yes # We get yes
于 2013-03-25T19:46:53.220 に答える
0

これを試して、

<div class="reviews" >
  <% if @reviews.any? %>
    <% @reviews.each do |review| %>
      <%= review_block review %>
    <% end %>
  <% else %>
    <%= render :partial => 'layouts/no_reviews' %>
  <% end %>
</div>
于 2013-03-25T19:46:11.443 に答える