将模型/变量传递给部分
Passing model / var to partial
我试图将一些信息从我的模型传递到我的部分但没有成功。
我的索引是这样的:
<div class="row">
<% @players.each do |player| %>
<%= render partial: "players", locals: { player: @players }%>
<% end %>
</div>
我的部分是这样的:
<div class="col-md-2 player">
<div class="thumbnail">
<img src="https://placehold.it/200x200" alt="t">
<div class="caption">
<h3><%= link_to player.name, player %></h3>
<p><%= "#{player.location}, #{player.age}" %></p>
</div>
</div>
</div>
球员模型:
has_one :team
团队模型:
has_many :players
我哪里失败了?
编辑:我忘了说我遇到了这个错误:
undefined method 'model_name' for Player::ActiveRecord_Relation:Class
尝试
<%= render @players %>
而不是
<% @players.each do |player| %>
<%= render partial: "players", locals: { player: @players }%>
<% end %>
否则
将@players
替换为player
<%= render partial: "players", locals: { player: player }%>
渲染局部时,向本地人传递一条记录:
<div class="row">
<% @players.each do |player| %>
<%= render partial: "players", locals: { player: player }%>
<% end %>
</div>
你有一个 undefined method 'model_name' for Player::ActiveRecord_Relation:Class
错误,因为你将一个集合传递给部分 locals: { player: @players }
@players
这里是 ActiveRecord_Relation
集合。 link_to player.name, player
尝试从集合创建路径但失败。
index.html.erb
页数:
<div class="row">
<%= render partial: 'player', collection: @players %>
</div>
_player.html.erb
部分:
<div class="col-md-2 player">
<div class="thumbnail">
<img src="https://placehold.it/200x200" alt="t">
<div class="caption">
<h3><%= link_to player.name, player %></h3>
<p><%= "#{player.location}, #{player.age}" %></p>
</div>
</div>
</div>
When a partial is called with a pluralized collection, then the
individual instances of the partial have access to the member of the
collection being rendered via a variable named after the partial.
我试图将一些信息从我的模型传递到我的部分但没有成功。
我的索引是这样的:
<div class="row">
<% @players.each do |player| %>
<%= render partial: "players", locals: { player: @players }%>
<% end %>
</div>
我的部分是这样的:
<div class="col-md-2 player">
<div class="thumbnail">
<img src="https://placehold.it/200x200" alt="t">
<div class="caption">
<h3><%= link_to player.name, player %></h3>
<p><%= "#{player.location}, #{player.age}" %></p>
</div>
</div>
</div>
球员模型:
has_one :team
团队模型:
has_many :players
我哪里失败了?
编辑:我忘了说我遇到了这个错误:
undefined method 'model_name' for Player::ActiveRecord_Relation:Class
尝试
<%= render @players %>
而不是
<% @players.each do |player| %>
<%= render partial: "players", locals: { player: @players }%>
<% end %>
否则
将@players
替换为player
<%= render partial: "players", locals: { player: player }%>
渲染局部时,向本地人传递一条记录:
<div class="row">
<% @players.each do |player| %>
<%= render partial: "players", locals: { player: player }%>
<% end %>
</div>
你有一个 undefined method 'model_name' for Player::ActiveRecord_Relation:Class
错误,因为你将一个集合传递给部分 locals: { player: @players }
@players
这里是 ActiveRecord_Relation
集合。 link_to player.name, player
尝试从集合创建路径但失败。
index.html.erb
页数:
<div class="row">
<%= render partial: 'player', collection: @players %>
</div>
_player.html.erb
部分:
<div class="col-md-2 player">
<div class="thumbnail">
<img src="https://placehold.it/200x200" alt="t">
<div class="caption">
<h3><%= link_to player.name, player %></h3>
<p><%= "#{player.location}, #{player.age}" %></p>
</div>
</div>
</div>
When a partial is called with a pluralized collection, then the individual instances of the partial have access to the member of the collection being rendered via a variable named after the partial.