ruby on rails - Render partial in normal page -


in views have folder called categories , in folder file index. worked until tried render partial in site:

 <div class="row-fluid">  <div class="span3">  <table class="table table-striped"> <tr> <th>kategory:</th> <th></th> </tr>  <% category in @categories %> <tr> ....................................    <div class="span9">  <%= render "ebms/star" %>  </div>  </div> 

somehow error

nomethoderror in categories#index  showing c:/sites/rublesql/app/views/ebms/_star.html.erb line #10 raised:  undefined method `each' nil:nilclass    <% ebm in @ebms %>  11:   <tr>  12:     <td><%= ebm.number %></td>      13:     <td><%= ebm.text %></td> 

but dont know how have change partial:

<table class="table table-striped">  <tr> <th>nummer:</th> <th>text:</th> <th>beschreibung:</th> <th></th> <th></th> </tr>  <% ebm in @ebms %> <tr> <td><%= ebm.number %></td>     <td><%= ebm.text %></td> <td><%= ebm.content %></td> <td><%= ebm.star %></td> <td><%= link_to 'star', set_star_path(ebm), method: :put, confirm: 'are sure?' %>    </td> </tr> <% end %> </table>  

the partial expects there instance variable calles @ebms isnt defined nil , nil values cant iterated try in partial. have either change partial expects instance variable thats given or need define @ebms in controller partial can work it.

in controller need define instance var this:

@ebms = modelname.where("<conditions>") 

its simple or can change partial eaven rendered if @ebms not defined or nil...

<table class="table table-striped">  <tr> <th>nummer:</th> <th>text:</th> <th>beschreibung:</th> <th></th> <th></th> </tr> <% if defined?(@ebms) && !@ebms.nil? %>   <% ebm in @ebms %>   <tr>   <td><%= ebm.number %></td>       <td><%= ebm.text %></td>   <td><%= ebm.content %></td>   <td><%= ebm.star %></td>   <td><%= link_to 'star', set_star_path(ebm), method: :put, confirm: 'are sure?' %>    </td>   </tr>   <% end %> <% end %> </table>  

Comments