Em geral, você deseja que suas regras de negócios sejam tratadas em seus controladores ou (melhor ainda) em seus modelos. O código de visualização deve realmente lidar apenas com a exibição de informações.
Pessoalmente, eu uso o cancan gem para lidar com a autenticação do usuário. Pode ser um bom ponto de partida para você. (Embora pareça que você precisará fazer alguma refatoração.) link
Além disso, não entendo completamente seu caso de uso em relação a parciais, mas raramente há motivo para duplicar o código. Perceba que você pode passar parâmetros para parciais: link
Com isso em mente, você não precisará duplicar nenhum código. Isso é um grande cheiro de código. Se você está fazendo isso, normalmente significa que você deve repensar parte do seu design.
Espero que ajude