0
我開始在Rails應用程序上開發,在我開始向錯誤方向行進之前,我想看看是否有共同的方法(即最佳實踐)來執行此操作。我有模型Game
和Player
在has_many :through
關係。我有這些泛音顯示的項目:如何在Rails中組織多模型視圖?
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
這樣的決定玩家如何在遊戲環境中顯示的部分是否可以接受?還是有更好的解決方案?
感謝您的回覆。所以,如果我理解正確,你說我應該有一個幫助器方法,我調用_player partial來決定是否顯示給定上下文的刪除鏈接?換句話說,視圖調用刪除按鈕,但輔助方法(或演示者)確定它是否顯示? – qalep
如果邏輯有點複雜,那就把它放在助手中,否則你可以在部分本身做一個小條件。儘管如此,我還是認爲你想渲染不同的部分。 – Nobita