如何在Rails中组织多模型视图?

时间:2012-06-19 04:53:02

标签: ruby-on-rails model-view-controller partial-views

我开始在Rails应用程序上开发,在开始向错误的方向前进之前,我想看看是否有一种常见的方式(即最佳实践)来做到这一点。我在[{1}}关系中拥有模型GamePlayer。我有这些部分显示项目:

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 %> 这样的部分来确定玩家在游戏环境中的显示方式?或者有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

当你说:

  

“创建另一个部分是否可以接受   views / games / _player.html.erb确定玩家的显示方式   在游戏的背景下“

我认为不是

的目的

看来你正在为视图提供逻辑,这在某种程度上是错误的。我相信你可以在帮助器中有一个方法来执行该决策逻辑。

所以,我想我会在你给出的例子中做到这一点:

  1. 有几个部分渲染不同的东西(依赖于上下文)。
  2. 在帮助程序中创建一个方法,该方法将分析上下文并选择要呈现的部分。