2017-06-04 96 views
-2

我想在卡片中顯示一個隨機對象。我想顯示一個隨機對象

<div class="row"> 
    <% @slots.sample(3).each do |slot| %> 
    <div class="col-md-4 col-sm-6"> 
     <div class="card-image"> 
     <%= link_to slot_path(slot) do %> 
     <% if slot.photo? %> 
      <%= cl_image_tag slot.photo, class: "img-rounded img-responsive", height: 262, width: 195 %> 
     <% else %> 
      <%= image_tag "image_placeholder.jpg", class: "fileinput-new thumbnail img-no-padding", height: 250, width: 400 %> 
     <% end %> 
     <% end %> 
     <div class="details"> 
      <div class="author"> 
      <%= link_to slot_user(slot) do %> 
      <%= cl_image_tag slot.user.photo, class: "img-circle img-no-padding img-responsive" %> 
      <span class="name"><%= slot.name %></span> 
      <span class="meta"><%= slot.user.first_name %> <%= slot.user.last_name %></span> 
      <% end %> 
      </div> 
     </div> 
     </div> 
    </div> 
    <% end %> 
    </div> 

我的代碼返回錯誤信息,如:

"undefined method `sample' for nil:NilClass", 
"undefined method `photo' for nil:NilClass", 
"undefined method `user' for nil:NilClass" 

我不明白。你可以幫我嗎?

+0

澤感謝您的指正!這是我第一次發佈到stackoverflow =) – user8109925

+0

什麼是@ @ slots? 「slot」是怎麼樣的? – spickermann

+0

@slots是未定義的(無)...您從未設置它。 – SteveTurczyn

回答

0

你可以隨機的@slots集合中的conntroller,如:

@slots = Slot.where(id: Slot.pluck(:id).sample(3)) 

然後直接在視圖中使用

<% @slots.each do |slot| %>