J'ai une application utilisée par plusieurs organisations et je veux vérifier que les utilisateurs d'un domaine (a.domain.com) ne peuvent pas éditer les utilisateurs d'un autre domaine (b.domain.com). Ma question est où mettre la logique, dans un filtre avant ou dans la vue?Rails - Trop de logique dans les vues?
Vue:
<% if @user.websites.detect {|website| website.url == request.host} %>
render :partial => 'form'
<% else %>
render :partial => 'no_access'
<% end %>
Ou, dans le contrôleur:
before_filter :verify_editable_user, :only => ['edit', 'update', 'delete']
protected
def verify_editable_user
@user = User.find(params[:id], :include => 'websites')
unless @user.websites.detect {|website| website.url == request.host}
render 'no_access'
end
end
Dans ce scénario, la première version se sent me plus propre. Cependant, la seconde semble plus le long du scénario MVC. Qu'est-ce que tu penses? Suis-je loin de la base? Merci d'avance.