Rails渲染问题

时间:2011-10-02 16:51:00

标签: ruby-on-rails ruby-on-rails-3

每当我试图将游戏局部渲染时,渲染它的视图都会给出一个零回报。

这是部分游戏:

<%= flash[:notice] %>
     <tr> 
     <% @games.each do |game| %>
       <td><%= game.name %></td> 

       <td><%= link_to('Pick!', vote_up_game_path(game.id), :method => :post) %></td> 
     </tr> 
       <% end %>

1 个答案:

答案 0 :(得分:1)

您应该将@games作为局部变量传递给局部变量。考虑查看有关其用法的文档。我也觉得闪光通知不应该属于局部。您可能还想更正代码

<% games.each do |game| %>
  <tr> 
    <td><%= game.name %></td> 
    <td><%= link_to 'Pick!', vote_up_game_path(game.id), :method => :post  %></td> 
  </tr> 
<% end %>

您可以按如下方式渲染部分

<%= render :partial => "game_partial", :locals => { :games => @games } %>

确保@games不是零也很重要。如果是,您仍然会收到错误 - 您应该检查您的控制器;通常我会想象你的控制器会有@games = Game.all,当然这取决于你的特定实现。