div_for:NoMethodError

问题描述

| 我正在尝试一个ror教程,并且遇到了以下代码行: index.html.erb:
<%= render :partial => @players %>
_player.html.erb:
<% div_for player do %>
<%= player.FNAME %> <%= player.SURNAME %>
<% end %>
players_controller.rb:
def index
    @players = Player.all(:order => \"FNAME\")
    respond_to do |format|
      format.html
    end
end
我想修改index.html.erb,以便不需要部分内容,但不能正常工作。 请参见下面的代码。 index.html.erb:
<% div_for @players do %>
<%= @player.FNAME %> <%= @player.SURNAME %>
<% end %>
Players#index中的NoMethodError     

解决方法

        这是您的代码的直接翻译:
<% @players.each do |player| %>
  <% div_for player do %>
    <%= player.FNAME %> <%= player.SURNAME %>
  <% end %>
<% end %>
给定一个集合的
render :partial
(本例中为
@players
)将逐步浏览该集合并为您呈现部分内容。 但是呈现集合还可以为您提供计数器和间隔模板。     ,        
<div>
    <% @players.each do |player| %>
    <p><%= player.FNAME %></p>
    <p><%= player.SURNAME %></p>
    <% end %>
</div>
仅供参考,将这些内容保留在部分内容中是个好主意。     ,        基本上,div_for将寻找一个ID以便:
 <div id=\"the_id\">
因为您传递的是数组,而不是对象,所以丢失了。 您应该使用content_tag来达到目的。 在此处查看文档:http://api.rubyonrails.org/classes/ActionView/Helpers/TagHelper.html#method-i-content_tag     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...