在`if`语句中不知道`current_user`的语法

时间:2014-08-27 00:31:04

标签: ruby-on-rails ruby

尝试显示用户贡献的歌曲,如果用户贡献了任何歌曲。我想写一个有条件的表达:

如果当前用户为歌曲做出了贡献,则循环播放它们并在列表中显示歌曲。 否则,不要显示任何内容。

继承我的showpage部分:

   <div class ="col-md-4 transparent" id="my-contributes">
     <h3>Tracks contributed to</h3>
      <div class="list-group" id="contributed_tracks">
        <% @contributed_songs.each do |song| %>
        <a href="#" class="list-group-item">
        <h4 class="list-group-item-heading"><%= song.username %> - <%= song.title %></h4>
        <p class="list-group-item-text"></p>
        </a>
        <% end %>
      </div>
    </div>

歌曲#指数:

def index
  if current_user 
    @songs = current_user.songs.all
  elsif current_user.nil?
    @songs = Song.all
  end
  @title = "MusicApp"
  @contibuted_versions = Version.where(:user_id => current_user.id)
  @contributed_songs = []
  @contributed_versions.each do |version|
  @contributed_songs << version.song
end
@contributed_songs.uniq!
end

我知道需要{:1}}语句:

if

<div class="list-group" id="contributed_tracks"> <% @contributed_songs.each do |song| %> <a href="#" class="list-group-item"> <h4 class="list-group-item-heading"><%= song.username %> - <%= song.title %></h4> <p class="list-group-item-text"></p> </a> <% end %> </div> 不包含任何内容,我只是不知道else提供歌曲的语法。

1 个答案:

答案 0 :(得分:0)

<% unless @contributed_songs.empty? %>
  <div class ="col-md-4 transparent" id="my-contributes">
    <h3>Tracks contributed to</h3>
    <div class="list-group" id="contributed_tracks">
      <% @contributed_songs.each do |song| %>
      <a href="#" class="list-group-item">
      <h4 class="list-group-item-heading"><%= song.username %> - <%= song.title %></h4>
      <p class="list-group-item-text"></p>
      </a>
      <% end %>
    </div>
  </div>
<% end %>
如果没有贡献的歌曲,

不显示任何内容。 @contributed_songs在您的实施中永远不应该是nil(除非您输入错字:p)