我开始在Rails应用程序上开发,在开始向错误的方向前进之前,我想看看是否有一种常见的方式(即最佳实践)来做到这一点。我在[{1}}关系中拥有模型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 %>
这样的部分来确定玩家在游戏环境中的显示方式?或者有更好的解决方案吗?
答案 0 :(得分:0)
当你说:
“创建另一个部分是否可以接受 views / games / _player.html.erb确定玩家的显示方式 在游戏的背景下“
我认为不是
的目的。看来你正在为视图提供逻辑,这在某种程度上是错误的。我相信你可以在帮助器中有一个方法来执行该决策逻辑。
所以,我想我会在你给出的例子中做到这一点: