Vous pouvez utiliser une instruction if pour renvoyer des partiels différents pour chaque condition.
Cependant, si vous écrivez une instruction if dans le fichier "html.erb", le code deviendra inévitablement long. Par exemple, comme ça ...
erb:sample.html.erb
<% if A == A %>
<%= render 'follow_button' %>
<% else %>
<%= render 'unfollow_button' %>
<% end %>
Dans un tel cas, il sera rafraîchissant de résumer le traitement dans une méthode d'assistance. ⬇︎
users_helper.rb
module UsersHelper
def follow_unfollow_button(user)
if A == A
render 'follow_button'
else
render 'unfollow_button'
end
end
end
Si vous utilisez la méthode d'assistance dans la vue,
erb:sample.html.erb
<%= follow_unfollow_button(@user) %>
C'était rafraîchissant en une seule ligne.
Si vous utilisez slim ou haml, l'instruction if sera un peu plus courte, mais dans tous les cas, si la logique est écrite dans la vue, la lisibilité du code sera réduite. J'ai pensé qu'il serait préférable de le mettre en place dans une logique comme si des déclarations, un assistant et un décorateur autant que possible.