【发布时间】:2012-06-19 04:53:02
【问题描述】:
我开始在 Rails 应用程序上进行开发,在我开始朝错误的方向前进之前,我想看看是否有一种通用的方法(即最佳实践)可以做到这一点。我有Game 和Player 的模型has_many :through 关系。我有这些部分来显示项目:
views/games/_game.html.erb
<%= content_tag_for :li, game do %>
<span class="name"><%= game.name %></span>
<% if game.players.any? %>
<ul class="player_list">
<%= render :partial => 'players/player', :collection => game.players %>
</ul>
<% end %>
<% end %>
views/players/_player.html.erb
<%= content_tag_for(:li, player) do %>
<span class="name"><%= player.name %></span>
<span class="delete">
<%= link_to "delete", player, :method => :delete, :class => :delete %>
<span>
<% end %>
问题是我希望玩家在不同的环境中以不同的方式显示。例如,玩家不应像在玩家索引中那样从游戏节目页面“删除”。是否可以创建另一个像 views/games/_player.html.erb 这样的部分来确定玩家在游戏上下文中的显示方式?还是有更好的解决方案?
【问题讨论】:
标签: ruby-on-rails model-view-controller partial-views