[英]ruby on rails instance variable and if elsif
In my Show View I have: 在我的显示视图中,我有:
<div class="reviews" >
<% @reviews.each do |review| %>
<%= review_block review %>
<% end %>
</div>
In my Controller I have: 在我的控制器中,我有:
def show
@review = Review.new
@reviews = @user.reviews
end
The idea is that if there are reviews that have been written, they are displayed on the page underneath the divs that currently exist- this part is working ok. 想法是,如果有已撰写的评论,则将它们显示在当前存在的div下方的页面上-该部分可以正常工作。
But if there are no reviews written, I just get nothing underneath the currently existing divs. 但是,如果没有任何评论,那么在现有的divs下我什么也收不到。 How could I display some text like 'No reviews written, sorry!' 如何显示“未写评论,对不起!”之类的文字。
Ideally I'd like to show a partial, because I will be displaying more texts/ images. 理想情况下,我想显示一部分,因为我将显示更多的文本/图像。
I was working on something like this: 我正在做这样的事情:
<div class="reviews" >
<% @reviews.each do |review| %>
<%= review_block review if review>0 %>
<%= else render :partial => 'layouts/no_reviews' %>
<% end %>
But it's not working. 但这不起作用。 Thanks for any help! 谢谢你的帮助!
Chris 克里斯
<div class="reviews" >
<% if @reviews && @reviews.present? %>
<% @reviews.each do |review| %>
<%= review_block review %>
<% end %>
<%= else render :partial => 'layouts/no_reviews' %>
<% end %>
eg 例如
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
Try this, 尝试这个,
<div class="reviews" >
<% if @reviews.any? %>
<% @reviews.each do |review| %>
<%= review_block review %>
<% end %>
<% else %>
<%= render :partial => 'layouts/no_reviews' %>
<% end %>
</div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.